| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:哪位仁兄指点指点wa了好久了 , 都检查不出来!!!!!!!!!!In Reply To:哪位仁兄指点指点wa了好久了 , 都检查不出来!!!!!!!!!! Posted by:sw1001 at 2011-04-01 20:47:37 > #include <stdio.h>
>
> int father[100010], kind[100010];
>
>
> void makeset(int n)
> {
> int i;
>
> for(i=1;i<=n;++i)
> {
> father[i]=i;
>
> kind[i]=0;
>
> }
>
> }
>
>
> int findset(int x)
> {
> if(x!=father[x])
> {
> father[x]=findset(father[x]);
> kind[x]=(kind[x]+kind[father[x]])%2;
>
> }
>
> return father[x];
>
> }
>
>
> void Union(int x, int y)
> {
> int xx, yy;
> xx=findset(x);
> yy=findset(y);
>
> if(xx==yy)
> return ;
> else
> {
>
> father[yy]=xx;
> kind[yy]=(kind[x]+kind[y]+1)%2;
> }
>
> }
>
> int main()
> {
>
> int T, N , M, ai, bi, aai, bbi;
>
> char strc;
>
> scanf("%d", &T);
>
> while(T--)
> {
> scanf("%d%d", &N, &M);
>
> makeset(N);
>
> while(M--)
> {
>
>
> scanf("\n%c%d%d",&strc ,&ai, &bi);
>
>
> if(strc=='D')
> {
> Union(ai, bi);
>
> }
> else
> {
> aai=findset(ai);
> bbi=findset(bi);
>
> if(aai!=bbi)
> {
> printf("Not sure yet.\n");
> }
> else if(aai==bbi)
> {
> if(kind[bi]==kind[ai])
> {
> printf("In the same gang.\n");
>
> }
> else
> {
> printf("In different gangs.\n");
> }
> }
> }
> }
>
> }
>
> return 0;
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator