這題有多筆測資這題有多筆測資這題有多筆測資這題有多筆測資這題有多筆測資
^
搞我半小時QAQ
#include<stdio.h> #include<stdlib.h> #include<string.h> struct node { int father; }; struct node lst[10001]; int cycle[10001]; int findfather(int a) { if(lst[a].father==a) return a; lst[a].father=findfather(lst[a].father); return lst[a].father; } int setup(int a,int b) { int fa=findfather(a); int fb=findfather(b); if(fa==fb) return 0; if(fb<fa) lst[fa].father=fb; else lst[fb].father=fa; } int main() { int n,p; int x,y; int q; while(scanf("%d %d",&n,&p)==2) { for(int lx=1;lx<=n;lx++) lst[lx].father=lx; for(int lx=1;lx<=p;lx++) { scanf("%d %d",&x,&y); setup(x,y); } scanf("%d",&q); printf("%d\n",findfather(q)); } return 0; }
沒有留言:
張貼留言