| ||||||||||
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