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了?我已经测了多数据了?能帮我看看吗?#include<iostream> using namespace std; #include<stdlib.h> struct point1 { int d; point1 *next; }; point1 map[20001]; int visit[20001]; int min,node,t,n,m; int dfs(int i,int j) { point1 *p; p=map[j].next; while(p!=NULL) { if(p->d!=i&&visit[p->d]==0) { visit[p->d]=1; m++; dfs(i,p->d); } p=p->next; } return m; } main() { int i,j,a,b,max; point1 *p,*p2; cin>>t>>n; for(i=1;i<=n;i++) { map[i].next=NULL; } while((t--)!=0) { max=0; memset(visit,0,sizeof(visit)); memset(map,0,sizeof(map)); for(i=1;i<n;i++) { cin>>a>>b; p=(point1*)calloc(1,sizeof(point1)); p->d=b; p->next=NULL; if(map[a].next!=NULL) p->next=map[a].next; map[a].next=p; p=(point1*)calloc(1,sizeof(point1)); p->d=a; p->next=NULL; if(map[b].next!=NULL) p->next=map[b].next; map[b].next=p; } min=200001; for(i=1;i<=n;i++) { memset(visit,0,sizeof(visit)); max=m=0; for(j=1;j<=n;j++) { if(j!=i&&visit[j]==0) { m=0; dfs(i,j); } if(m>max) max=m; } if(max<min) { min=max; node=i; } } cout<<node<<" "<<min<<endl; for(i=1;i<=n;i++) { p =map[i].next; while (p != NULL) { p2 = p; p = p->next; free(p2); } map[i].next=NULL; } } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator