| ||||||||||
| 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 | |||||||||
牛人帮我看看为什么会WA.样例过了。void main()
{ struct person
{ struct person *next;
struct person *last;
int group;
}per[50001],*temp;
long n,m,i,believe,g,c,x,y;
for(c=1;;c++)
{ scanf("%ld%ld",&n,&m);
if(n==0&&m==0)
break;
believe=n;
g=0;
for(i=1;i<=n;i++)
per[i].group=0;
for(i=0;i<m;i++)
{ scanf("%ld%ld",&x,&y);
if(per[x].group==0&&per[y].group==0)
{ believe--;
g++;
per[x].group=g;
per[y].group=g;
per[x].next=&per[y];
per[y].next=&per[x];
per[x].last=&per[y];
per[y].last=&per[x];
}
else if(per[x].group!=0&&per[y].group==0)
{ believe--;
per[y].group=per[x].group;
per[y].next=per[x].next;
per[y].last=&per[x];
per[x].next=&per[y];
per[y].next->last=&per[y];
}
else if(per[x].group==0&&per[y].group!=0)
{ believe--;
per[x].group=per[y].group;
per[x].next=per[y].next;
per[x].last=&per[y];
per[y].next=&per[x];
per[x].next->last=&per[x];
}
else if(per[x].group!=per[y].group)
{ believe--;
temp=per[x].next;
per[x].next=per[y].next;
per[y].next=temp;
temp=per[x].last;
per[x].last=per[y].last;
per[y].last=temp;
temp=per[x].next;
while(temp->group!=per[x].group)
{ temp->group=per[x].group;
temp=temp->next;
}
}
}
printf("Case %ld: %ld\n",c,believe);
}
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator