标签:des ota identify info fat log single cti lan
| Time Limit: 1000MS | Memory Limit: 10000K | |
| Total Submissions: 43132 | Accepted: 13257 | 
Description
Input
Output
Sample Input
1 5 5 A 1 2 D 1 2 A 1 2 D 2 4 A 1 4
Sample Output
Not sure yet. In different gangs. In the same gang.
Source
#include<stdio.h>
int father[150500],relation[150050];
void init(int n)
  {
  	 int i;
  	 for(i=1;i<=n;++i) father[i]=i;
  	 for(i=1;i<=n;++i) relation[i]=0;
  }
int find(int x)
  {
  	 int t;
  	 if(x==father[x]) return (x);
  	 t=father[x];
  	 father[x]=find(t);
  	 relation[x]=(relation[x]+relation[t])%2;
  	 return (father[x]);
  }
void merge(int x,int y)
  {
  	 int find_x=find(x);
  	 int find_y=find(y);
  	 if(find_x!=find_y) 
  	   {
  	      relation[find_x]=(relation[y]+1-relation[x]+2)%2;
  	      father[find_x]=find_y;
	   }
  }
int main()
  {
  	 int T,n,m,num=0;char c;int x,y;
  	 scanf("%d",&T);
  	 while(T--)
  	   {
  	   	  scanf("%d%d",&n,&m);
  	   	  init(n);
  	   	  while(m--)
  	   	    {
  	   	      getchar();
  	   	      scanf("%c%d%d",&c,&x,&y);
  	   	      if(c==‘D‘)
  	   	        {
  	   	           merge(x,y);
				}else
			  if(c==‘A‘)
			    {
			      if(find(x)!=find(y))
			        {
			           printf("Not sure yet.\n");
			           continue;
					}else
				  if(relation[x]==relation[y]) 
				    {
				       printf("In the same gang.\n");
				       continue;
					}else
				  if(relation[x]!=relation[y])
				    printf("In different gangs.\n");
				}
			}
	   }
  	 return 0;
  }
[并查集] POJ 1703 Find them, Catch them
标签:des ota identify info fat log single cti lan
原文地址:http://www.cnblogs.com/fuermowei-sw/p/6193533.html