hihocoder1121 二分图一•二分图判定
来源:互联网 发布:知乎每日精选 rss 编辑:程序博客网 时间:2024/06/15 11:31
染色(模拟)
题目传送门
图的染色(就是二分图判定的方法),思路题目上直接有就不讲了。
注意可能有多个联通分量。
贴上交了8遍才过的代码(还是8遍):
#include<cstdio>#include<cstring>#include<algorithm>#define MAXN 10000using namespace std;struct edge{ int to; int next;};int k,t,n,m,u,v,r,w;edge a[MAXN*8+5];int h[MAXN+5];int f[MAXN+5];int b[MAXN*10+5];bool pd;void read(int x,int y){ k++; a[k].next=h[x]; a[k].to=y; h[x]=k;}void doit(int j){ b[1]=j; f[j]=1; r=0; w=1; int x; while (r<w) { x=b[++r]; if (f[x]==1) for (int i=h[x];i!=0;i=a[i].next) { if (!f[a[i].to]) { f[a[i].to]=2; b[++w]=a[i].to; } else if (f[a[i].to]==1) { printf("Wrong\n"); pd=true; return; } } else for (int i=h[x];i!=0;i=a[i].next) { if (!f[a[i].to]) { f[a[i].to]=1; b[++w]=a[i].to; } else if (f[a[i].to]==2) { printf("Wrong\n"); pd=true; return; } } }}int main(){ scanf("%d",&t); while (t--) { memset(h,0,sizeof(h)); memset(f,0,sizeof(f)); k=0; pd=false; scanf("%d%d",&n,&m); for (int i=1;i<=m;i++) { scanf("%d%d",&u,&v); read(u,v); read(v,u); } for (int j=1;j<=n;j++) { if (!f[j]) doit(j); if (pd) break; } if (pd==false) printf("Correct\n"); } return 0;}
阅读全文
1 0
- hihocoder1121 二分图一•二分图判定
- 二分图一•二分图判定
- #1121 : 二分图一•二分图判定 (HIHOCoder +二分图的判定)
- 二分图一•二分图判定+异或运算
- #1121 : 二分图一•二分图判定
- 1121 : 二分图一•二分图判定
- hihoCoder 1121 二分图一•二分图判定
- hihocoder 1121 : 二分图一•二分图判定
- [HihoCoder]#1121 : 二分图一•二分图判定
- HIHO #1121 : 二分图一•二分图判定
- HihoCoder 1121二分图一•二分图判定
- 二分图一•二分图判定(尚未解决)
- hihocoder 1121 : 二分图一•二分图判定
- hihocoder 1121 : 二分图一•二分图判定
- hihoCoder#1121 : 二分图一•二分图判定
- hihoCoder1121(二分图染色深搜、广搜对比)
- p1403 二分+二分图判定
- hiho 32 二分图判定一
- 6.1~6.3关于sublime的一下额总结
- 宿命的PSS
- 【NGUI源码剖析】NGUI的drawcall
- 怎样在Git码云上上传项目
- 绘制caffe中的prototxt网络结构图
- hihocoder1121 二分图一•二分图判定
- maven持续集成本地搭建私有仓储
- 二分图最佳完美匹配——KM算法总结
- Eclipse报错: Failed to get the required ADT version number from the SDK
- 2017 计蒜之道 初赛 第五场 A. UCloud 机房的网络搭建
- Ubuntu下安装R,升级R版本,安装Rstudio,安装Rstudio Server以及安装Shiny Server
- C语言--模拟栈(使用链表)
- TCP长连接,短链接,双工,单工
- Python入门教程(更新中,日期:20170710)