poj1703(种类并查集)
2014-07-24 08:40
323 查看
题目大意:
输入:第一行测试数目T;
第二行N,M;N个罪犯M个输入;
第3~m+2行,A表示询问,a,b是否同一种类;D,表示a,b不同种类;
种类并查集:
分为1~N,N~2N两类;
a,b第一次出现时是s[a]=a,s[b]=b,
输入:第一行测试数目T;
第二行N,M;N个罪犯M个输入;
第3~m+2行,A表示询问,a,b是否同一种类;D,表示a,b不同种类;
种类并查集:
分为1~N,N~2N两类;
a,b第一次出现时是s[a]=a,s[b]=b,
#include<cstdio> #include<cstring> #define MAXN 200100 int n,m,s[MAXN]; int Find(int x) { if(s[x]<0) return x; return s[x]=Find(s[x]); } int main() { int Case; scanf("%d",&Case); while(Case--) { memset(s,-1,sizeof(s)); scanf("%d%d",&n,&m); while(m--) { char str; int a,b; scanf(" %c %d %d",&str,&a,&b); if(str=='A') { if(Find(a)!=Find(b)&&Find(a)!=Find(b+n)) puts("Not sure yet."); else if(Find(a)==Find(b)) puts("In the same gang."); else puts("In different gangs."); } else { if(Find(a)!=Find(b+n)) { s[Find(a)]=Find(b+n); s[Find(b)]=Find(a+n); } } } } }
相关文章推荐
- POJ2492(A Bug's Life) && POJ1703(Find them, Catch them)带权(种类)并查集
- poj1703 种类并查集
- poj1703 Find them, Catch them 种类并查集
- 种类为两种时,并查集的解题应用poj1703和hdu1829
- [poj1703]Find them, Catch them(种类并查集)
- hdu3038 How Many Answers Are Wrong --- 种类并查集
- hdu 3038(How Many Answers Are Wrong)+3047(Zjnu Stadium)(种类并查集)
- HDOJ 1829 A Bug's Life (种类并查集)
- poj1182 食物链 种类并查集 经典题
- 食物链 (种类并查集(裸))
- Find them, Catch them ------ 种类并查集
- hdoj-1289-A Bug's Life【种类并查集】
- 食物链 POJ - 1182(种类并查集)
- ACdream 1056 Bad Horse (种类并查集)
- 食物链------种类并查集
- poj 1703 Find them, Catch them 带权并查集OR种类并查集
- poj1703(并查集—“食物链”的简化版)
- NBOJv2 1022 短信篮球(种类并查集)
- hdu3038 How Many Answers Are Wrong【基础种类并查集】
- pku 1703(种类并查集)