链接:C. Bakry and Partitioning.
思路:a^a=0,dfs找出子树异或和等于sum的个数。
int t,n,k; int a[100010],b[100010],f[100010]; vectorc[100010]; int ans,sum; void dfs(int u) { f[u]=1; for(int i=0;i >t; while(t--) { ans=0;sum=0; cin>>n>>k; for(int i=1;i<=n;i++) { cin>>a[i],b[i]=a[i],c[i].clear(); sum=sum^a[i];f[i]=0; } for(int i=1;i >u>>v; c[u].push_back(v); c[v].push_back(u); } if(sum==0){cout<<"YESn";continue;} if(k==2){cout<<"NOn";continue;} dfs(1); if(ans==1)cout<<"NOn"; else cout<<"YESn"; } return 0; }



