23 11 23 23 21 2Example Output
21#include<stdio.h>#include<string.h>int a[30];void init(int n){ int i; for(i=1;i<=n;i++) { a[i]=i; }}int f(int x){ int i,j; i=x; while(a[x]!=x) { x=a[x]; } while(a[i]!=x) { j=a[i]; a[i]=x; i=j; } return x;}void merge(int u,int v){ int x,y; x=f(u); y=f(v); if(x!=y) { a[x]=y; }}int main(){ int i,t,n,m,u,v,count; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); count=0; init(n); while(m--) { scanf("%d%d",&u,&v); merge(u,v); } for(i=1;i<=n;i++) { if(a[i]==i) { count++; } } printf("%d/n",count); } return 0;}
新闻热点
疑难解答