标签:
1 #pragma comment(linker, "/STACK:1024000000,1024000000") 2 #include<iostream> 3 #include<cstdio> 4 #include<cstring> 5 #include<cmath> 6 #include<math.h> 7 #include<algorithm> 8 #include<queue> 9 #include<set> 10 #include<bitset> 11 #include<map> 12 #include<vector> 13 #include<stdlib.h> 14 using namespace std; 15 #define ll long long 16 #define eps 1e-10 17 #define MOD 1000000007 18 #define N 100006 19 #define inf 1e12 20 int n; 21 int fa[N]; 22 int num[N]; 23 void init(){ 24 for(int i=0;i<N;i++){ 25 fa[i]=i; 26 } 27 } 28 int find(int x){ 29 return fa[x]==x?x:fa[x]=find(fa[x]); 30 } 31 void merge(int x,int y){ 32 int root1=find(x); 33 int root2=find(y); 34 if(root1==root2) return; 35 fa[root1]=root2; 36 } 37 int main() 38 { 39 int t; 40 scanf("%d",&t); 41 while(t--){ 42 init(); 43 scanf("%d",&n); 44 for(int i=0;i<n-1;i++){ 45 int a,b,c; 46 scanf("%d%d%d",&a,&b,&c); 47 if(c==0){ 48 merge(a,b); 49 } 50 } 51 52 memset(num,0,sizeof(num)); 53 for(int i=1;i<=n;i++){ 54 int r=find(i); 55 num[r]++; 56 } 57 int ans=0; 58 for(int i=1;i<=n;i++){ 59 ans=(ans^num[find(i)]); 60 } 61 printf("%d\n",ans); 62 } 63 return 0; 64 }
标签:
原文地址:http://www.cnblogs.com/UniqueColor/p/5165013.html