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:新手,不明白,能得出正确的结果,为什么是wrong answerIn Reply To:新手,不明白,能得出正确的结果,为什么是wrong answer Posted by:michaelhsuke at 2011-10-27 10:57:06 > 我的源代码 > > #include <stdio.h> > > int List[500][30001]; > int n,m,index=1; > int rec[30001]; > int visited[500]; > > > void insertRec(int i) //用i组的所有成员都加入怀疑对象数组 > { > int j; > rec[0]+=List[i][0]; > for(j=1;j<=List[i][0];j++) > { > rec[index++]=List[i][j]; > } > } > > int searchInList(int x,int i) //第i组中是否存在x > { > int j; > for(j=1;j<=List[i][0];j++) > if(x==List[i][j]) > return 1; > > return 0; > } > > > > > void input(int m) //输入数据 > { > int i,j,nMembers; > for(i=0;i<m;i++) > { > visited[i]=0; > scanf("%d",&nMembers); > List[i][0]=nMembers; > for(j=1;j<=nMembers;j++) > { > scanf("%d",&List[i][j]); > if(List[i][j]==0) > { > visited[i]=1; > rec[0]+=(List[i][0]-1); > insertRec(i); > } > } > } > } > > > void main() //主程序 > { > int finish,i,j; > while(scanf("%d %d",&n,&m)) > { > if((n==0)&&(m==0)) > return; > if((n==1)&&(m==0)) > { > printf("%d\n",n); > continue; > } > > finish=0; > rec[0]=1; > input(m); > while(!finish) > { > finish=1; > for(i=0;i<m;i++) > { > if(visited[i]==0) > { > for(j=1;j<index;j++) > { > if(searchInList(rec[j],i)) > { > finish=0; > visited[i]=1; > insertRec(i); > break; > } > } > } > } > } > printf("%d\n",rec[0]); > } > } > > Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator