[POJ 2492] A Bug's Life [黑白染色]
2014-05-01 20:32
435 查看
有一些虫子,已知谁和谁是不同性别的,问有没有矛盾
可以使用扩展并查集
也可以先构造出整个图,然后黑白染色,看他是不是二分图,这里用的黑白染色
可以使用扩展并查集
也可以先构造出整个图,然后黑白染色,看他是不是二分图,这里用的黑白染色
#include <cstdio> #include <cstring> using namespace std; struct Node { int fe,col; }; struct Edge { int t,ne; }; bool ans; int n,m,p; Node a[2100]; Edge b[2000100]; void putedge(int x,int y) { b[p].t=y; b[p].ne=a[x].fe; a[x].fe=p; p++; } void dfs(int i,int c) { if (a[i].col==-c) ans=false; if (a[i].col!=0) return; a[i].col=c; c=-c; for (int j=a[i].fe;j;j=b[j].ne) { dfs(b[j].t,c); } } int main() { int t,tt,i,x,y; ans=true; scanf("%d",&t); for (tt=1;tt<=t;tt++) { memset(a,0,sizeof(a)); p=1; scanf("%d%d",&n,&m); for (i=0;i<m;i++) { scanf("%d%d",&x,&y); putedge(x,y); putedge(y,x); } ans=true; for (i=1;i<=n&&ans;i++) { if (a[i].col==0) dfs(i,1); } printf("Scenario #%d:\n",tt); if (ans) printf("No suspicious bugs found!\n"); else printf("Suspicious bugs found!\n"); printf("\n"); } return 0; }
相关文章推荐
- A Bug's Life 【POJ--2492】【带权的并查集】
- Poj 2492 A Bug's Life
- poj 2492 A Bug's Life 【并查集拓展】
- POJ 2492--A Bug's Life 【并查集,向量偏移】
- Poj 2492 A Bug's Life
- POJ 2492 A Bug's Life 并查集维护类别
- poj 2492 A Bug's Life --并查树
- [POJ 2492]A Bug's Life[并查集]
- POJ 2492 A Bug's Life 并查集的应用
- poj 2492 A BUG'S LIFE 不是纯裸的并查集
- POJ 2492 - A Bug's Life
- POJ-2492 A Bug's Life 并查集
- POJ 2492 A Bug's Life 并查集
- [NWPU][2014][TRN][12]并查集D - A Bug's Life POJ 2492
- Pku acm 2492 A Bug's Life数据结构题目解题报告(十)---- 并查集的应用
- POJ 2492 A Bug's Life and POJ 1703 Find them, Catch them
- poj2492 A Bug's Life
- POJ 2492 A Bug's Life
- 【图论05】并查集 1004 A Bug's Life
- A Bug's Life POJ - 2492