poj2492 A Bug's Life(并查集)
来源:互联网 发布:沪深300指数基金 知乎 编辑:程序博客网 时间:2024/06/04 18:09
题意:有n个虫子,人们认为只有性别不同的时候才会发生性关系,现在给出m组虫子发生了关系,问是否存在同性恋(这题目...真变态)
思路:并查集,将性别相同的划分在一个集合,不同的划分在另一个
#include <cstdio>#include <queue>#include <cstring>#include <iostream>#include <cstdlib>#include <algorithm>#include <vector>#include <map>#include <string>#include <set>#include <ctime>#include <cmath>#include <cctype>using namespace std;#define maxn 2010#define LL long longint cas=1,T;int pre[maxn];int resex[maxn];int rank[maxn];int n;void init(){for (int i = 1;i<=n;i++){pre[i]=i;resex[i]=0;rank[i]=0;}}int Find(int x){int r = x;while (r!=pre[r])r=pre[r];int i = x,j;while (pre[i]!=r){j = pre[i];pre[i]=r;i=j;}return r;}void mix(int x,int y){int fx = Find(x),fy=Find(y);/*if (rank[fx] > rank[fy])pre[fy]=fx;else{pre[fx]=fy;if (rank[x]==rank[y])rank[y]++;}*/if (fx!=fy)pre[fx]=fy;}int main(){//freopen("in","r",stdin);scanf("%d",&T);while (T--){int flag = 1;int m;scanf("%d%d",&n,&m);init();for (int i = 1;i<=m;i++){int a,b;scanf("%d%d",&a,&b);if (!flag)continue;int x = Find(a);int y = Find(b);if (x==y)flag = 0;if (resex[a]!=0)mix(resex[a],b);elseresex[a]=b;if (resex[b]!=0)mix(resex[b],a);elseresex[b]=a;}printf("Scenario #%d:\n",cas++);if (!flag)printf("Suspicious bugs found!\n\n");elseprintf("No suspicious bugs found!\n\n");}//printf("time=%.3lf",(double)clock()/CLOCKS_PER_SEC);return 0;}
0 0
- POJ2492 A Bug's Life (并查集)
- poj2492 A Bug's Life(并查集)
- poj2492 A Bug's Life(并查集)
- poj2492 A Bug's Life(并查集)
- POJ2492 -A Bug's Life(种类并查集)
- POJ2492--A Bug's Life--并查集
- poj2492 A Bug's Life 种类并查集
- poj2492--A Bug's Life(并查集变形)
- POJ2492 A Bug's Life 【并查集】
- poj2492 A Bug's Life 并查集
- poj2492 A Bug's Life (并查集拓展)
- POJ2492 A Bug's Life 并查集
- POJ2492 A Bug's Life 种群并查集
- POJ2492 a bug's life并查集扩展
- poj2492——A Bug's Life(并查集扩展)
- (POJ2492)A Bug's Life <并查集判断是否同类>
- poj2492 A bug's life{种类并查集}
- POJ2492(A Bug's Life) && POJ1703(Find them, Catch them)带权(种类)并查集
- 238,安装mysql出现Access denied for user 'root'@'localhost' (using password: YES)的问题
- ubuntu 的 document viewer evince 发生 Could not open X display 错误的处理
- Android 四大组件 —— 广播(广播机制解析)
- Interview Notes
- CAS单点登陆的原理
- poj2492 A Bug's Life(并查集)
- Hadoop—archive
- 反馈通道改善系统性能_20160130
- 1036. 跟奥巴马一起编程(15)
- 浏览器知识
- 六太子玩机第一弹( •̀ ω •́ )
- Apache DbUtils 教程
- eclipse-rcp之简述
- C#设计模式开篇之简单工厂模式