1 vector<int> p[MAX];
2 int V;
3 int color[MAX];
4
5 bool dfs(int v,int c)
6 {
7 color[v]=c;
8 for(int i=0; i<p[v].size(); i++){
9 if(color[p[v][i]==c) return false;
10 if(color[p[v][i]==0 && !(dfs(p[v][i],-c))) return false;
11 }
12 return true;
13 }
14
15 void solve()
16 {
17 for(int i=0; i<V; i++){
18 if(color[i]==0){
19 if(dfs(i,1)){
20 printf("YES\n");
21 return ;
22 }
23 }
24 }
25 printf("NO\n");
26 }
来源:https://www.cnblogs.com/wangmengmeng/p/5263273.html