模板:二分图染色+判定
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板:二分图染色+判定相关的知识,希望对你有一定的参考价值。
1 //邻接表dfs二分图判定 2 vector <int> G[N]; 3 int col[N]; 4 5 //顶点染色c,-c 6 bool dfs(int v,int c){ 7 col[v]=c; 8 for(int i=0;i<G[v].size();i++){ 9 int tmp=G[v][i]; 10 if(col[tmp]==c) return false; 11 if(col[tmp]==0&&!dfs(tmp,-c)) return false; 12 } 13 return true; 14 } 15 16 //如果图是连通的话,一次dfs就可以访问所有的顶点. 17 void solve(){ 18 for(int i=0;i<V;i++){ 19 if(col[i]==0){ 20 if(!dfs(i,1)){ 21 cout<<"NO"<<endl; 22 return ; 23 } 24 } 25 } 26 cout<<"YES"<<endl; 27 }
以上是关于模板:二分图染色+判定的主要内容,如果未能解决你的问题,请参考以下文章