Clarke and MST

Accepts: 59
Submissions: 108
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
问题描述
克拉克是一名人格分裂患者。某一天克拉克变成了一名图论研究者。  
他学习了最小生成树的几个算法,于是突发奇想,想做一个位运算and的最大生成树。  
一棵生成树是由$n-1$条边组成的,且$n$个点两两可达。一棵生成树的大小等于所有在生成树上的边的权值经过位运算and后得到的数。  
现在他想找出最大的生成树。
输入描述
第一行是一个整数$T(1 \le T \le 5)$,表示数据组数。  
每组数据第一行是两个整数$n, m(1 \le n, m \le 300000)$,分别表示点个数和边个数。其中$n, m > 100000$的数据最多一组。  
接下来$m$行,每行$3$个整数$x, y, w(1 \le x, y \le n, 0 \le w \le 10^9)$,表示$x, y$之间有一条大小为$w$的边。
输出描述
每组数据输出一行一个数,表示答案。若不存在生成树,输出$0$。
输入样例
1
4 5
1 2 5
1 3 3
1 4 2
2 3 1
3 4 7
输出样例
1