码迷,mamicode.com
首页 > 其他好文 > 详细

模板:二分图染色+判定

时间:2017-11-05 13:12:38      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:邻接表   二分   oid   顶点   tmp   void   bsp   logs   log   

 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 }

 

模板:二分图染色+判定

标签:邻接表   二分   oid   顶点   tmp   void   bsp   logs   log   

原文地址:http://www.cnblogs.com/Leonard-/p/7786997.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!