POJ-1703 Find them, Catch them 经典并查集
2014-04-13 16:11
513 查看
题目链接
题目大意:在这个城市里有两个黑帮团伙,现在给出N个人,问任意两个人他们是否在同一个团伙
输入D x y代表x于y不在一个团伙里
输入A x y要输出x与y是否在同一团伙或者不确定他们在同一个团伙里
与poj1182 2492类似
题目大意:在这个城市里有两个黑帮团伙,现在给出N个人,问任意两个人他们是否在同一个团伙
输入D x y代表x于y不在一个团伙里
输入A x y要输出x与y是否在同一团伙或者不确定他们在同一个团伙里
与poj1182 2492类似
#include<stdio.h> #include<iostream> #include<string> #include<string.h> #include<math.h> #include<functional> #include<algorithm> #include<vector> #include<queue> using namespace std; const int maxn = 100005; const int inf = 1<<29; int n,m; int p[maxn],g[maxn]; //g 0表示相同 1表示不同 int find( int x ) { if( p[x] == x ) return x; int tmp = p[x]; p[x] = find(p[x]); g[x] = (g[x]+g[tmp])%2; return p[x]; } void merge( int x,int y ) { int fx = find(x); int fy = find(y); p[fy] = fx; g[fy] = ( g[y] + g[x] + 1 )%2; } void init() { for( int i = 0; i <= n; i ++ ){ p[i] = i; g[i] = 0; } } int main() { #ifndef ONLINE_JUDGE freopen("data.txt","r",stdin); #endif char ch; int cas,x,y; scanf("%d",&cas); while( cas -- ){ scanf("%d%d ",&n,&m); init(); for( int i = 0; i < m; i ++ ){ scanf("%c%d%d ",&ch,&x,&y); if( ch == 'A' ){ if( find(x) == find(y) ){ if( g[x] == g[y] ) puts("In the same gang."); else puts("In different gangs."); } else puts("Not sure yet."); } else if( ch == 'D' ){ merge( x,y ); } } } return 0; }
相关文章推荐
- POJ 1703 Find them, Catch them(经典并查集)
- POJ 1703 Find them,Catch them ----种类并查集(经典)
- POJ 1703 Find them,Catch them ----种类并查集(经典)
- POJ 1703 Find them, Catch them(并查集的拓展)
- POJ 1703 Find them, Catch them【带权并查集】
- poj 1703 Find them, Catch them(并查集应用)
- POJ1703--Find them, Catch them--并查集
- POJ 1703 Find them, Catch them 种类并查集
- POJ 1703 Find them, Catch them(数据结构-并查集)
- POJ 1703 Find them, Catch them(并查集)
- poj 1703 Find them, Catch them (分组并查集 偏移向量实现)
- poj 1703 Find them, Catch them(裸地种类并查集)
- POJ 题目1703 Find them, Catch them(并查集,分类)
- POJ 1703 Find them, Catch them(关系并查集)
- poj 1703 Find them, Catch them(并查集)
- POJ 1703 Find them, Catch them 种类并查集
- poj 1703 Find them, Catch them 带权并查集
- 并查集 POJ-1703 Find them, Catch them
- POJ 1703 Find them, Catch them [数据结构-并查集 union-find sets]
- (用树结构支持并查集8.2.2)POJ 1703 Find them, Catch them(并查集的简单使用: 判断两个元素是否属于同一集合)