#include #include #include using namespace std ; const int maxn = 100010 ; int dd[maxn] ; int F[maxn] ; int sum[maxn] ; int find(int x){ if(F[x] == -1){ return x ; } return F[x] = find(F[x]) ; } int join(int x , int y) { int fx = find(x) ; int fy = find(y) ; if(fx != fy){ F[fx] = fy ; sum[fy] += sum[fx] ; } } int main() { int t ; scanf("%d" , &t) ; while(t--){ int n ; scanf("%d" , &n) ; for(int i = 1;i <= n;i++){ F[i] = -1 ; sum[i] = 1 ; dd[i] = 0 ; } for(int i = 1;i < n;i++){ int u , v , w; scanf("%d%d%d" , &u , &v , &w) ; dd[u]++ ; dd[v]++ ; if(!w){ join(u , v) ; } } int ans = 0 ; for(int i = 1;i <= n;i++){ int fi = find(i) ; if(fi == -1){ ans ^= dd[i] ; } else{ ans ^= sum[fi] ; } } printf("%d\n" , ans) ; } return 0 ; }