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