首页 > 代码库 > 二分着色

二分着色

用两种颜色覆盖图

#include<iostream>#include<stdio.h>#include<vector>#define maxv 1000using namespace std;vector<int>G[maxv];int v;int color[maxv];bool dfs(int v,int c){    color[v]=c;    for(int i=0;i<G[v].size();i++)    {        if(color[G[v][i]]==c) return false;        if(color[G[v][i]]==0&&!dfs(G[v][i],-c)) return false;    }    return true;}int main(){    for(int i=0;i<v;i++)    {        if(color[i]==0)        {            if(!dfs(i,1))            {                printf("NO\n");                return 0;            }        }    }    printf("YES\n");    return 0;}

 

二分着色