HDU 4751 Divide Groups(二分图判断)
来源:互联网 发布:ubuntu 进入根目录 编辑:程序博客网 时间:2024/05/16 05:51
给出的图是一张有向图,代表i认识j,那么line[i][j]==false||line[j][i]==false代表i和j不是相互认识,那么他们肯定不可以在一个集合里,所以i和j之间连边,最后判断是不是二分图,如果是,那么可以分,否则不能分。
#include<iostream>#include<cstring>using namespace std;const int maxn=100+5;int head[maxn*maxn],to[maxn*maxn],Next[maxn*maxn];bool line[maxn][maxn];int color[maxn];int n;int tot;void addedge(int u,int v){ to[tot]=v; Next[tot]=head[u]; head[u]=tot++;}bool getc(int u){ for(int i=head[u];i!=-1;i=Next[i]) { int v=to[i]; if(color[v]==-1){ color[v]=3-color[u]; if(!getc(v)) return false; } else if(color[u]==color[v]) return false; } return true;}int main(){ while(~scanf("%d",&n)) { tot=0; memset(line,false,sizeof(line)); memset(head,-1,sizeof(head)); for(int i=1;i<=n;i++){ int v; while(scanf("%d",&v)&&v){ line[i][v]=true; } } for(int i=1;i<=n;i++){ for(int j=i+1;j<=n;j++){ if(line[i][j]==false||line[j][i]==false) {addedge(i,j);addedge(j,i);} } } bool ok=true; memset(color,-1,sizeof(color)); for(int i=1;i<=n;i++){ if(color[i]==-1){ color[i]=1; ok=getc(i); if(ok==false) break; } } if(ok) printf("YES\n"); else printf("NO\n"); } return 0;}
0 0
- hdu 4751 Divide Groups (二分图判断)
- HDU 4751 Divide Groups 二分图判断
- HDU 4751 Divide Groups(二分图判断)
- HDU 4751 Divide Groups(二分图的判断)
- HDU 4751 Divide Groups(判断是否为二分图)
- HDU 4751 Divide Groups (判断二分图染色模板)
- HDU 4751 Divide Groups(判断二分图)
- HDU 4751 Divide Groups (二分图)
- HDU - 4751 Divide Groups(二分图)
- HDU 4751 Divide Groups【二分图染色】
- HDOJ-----4751---Divide Groups二分判断
- hdu 4751 Divide Groups(判完美二分图)
- HDU 4751 — Divide Groups 交叉染色判二分图
- HDU 4751 Divide Groups
- HDU-4751-Divide Groups
- HDU 4751 Divide Groups
- HDU:4751 Divide Groups
- HDU-4751 Divide Groups
- 常用mysql自带内置函数说明&相似对比
- try catch
- iOS/Objective-C开发 枚举(Enum)的使用
- Java网络编程,通过TCP,Socket实现多对一的局域网聊天室
- Mac 终端Mysql路径设置
- HDU 4751 Divide Groups(二分图判断)
- 使用Glide动态加载圆形图片跟圆角图片
- 动态线程中获取spring dao或者service
- 分布式系统事务一致性解决方案
- android studio文件工程夹过大,generated文件夹过大解决方法
- C++ STL的严格弱序(strict weak ordering)
- 简单聊聊设计
- [绍棠] 简述xcode经常报的经典error及解决办法
- MODBUS ASCII和RTU两种模式的区别、优缺点