图上异或难题
题号:NC255614
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

月色哥哥氧气少年出了一道难题。

给出一个由 n 个点,m 条边组成的无向图,每条边都有边权。

月色哥哥会将每个点染成黑色或白色。

如果某一条边的两个端点颜色不同,那么这条边称为坤边月色哥哥想通过最优的染色策略,让所有坤边的边权异或和最大。

请求出所有坤边的最大边权异或和。

输入描述:

第一行包含一个整数 T(1\leq T \leq 10^5),表示测试用例的组数。

对于每组测试用例:

第一行包含两个整数 n(1\leq n\leq 2\cdot 10^5),m(1\leq m\leq \frac{n\cdot(n-1)}{2}),表示图的节点数量和边的数量。

接下来 m 行,每行包含三个整数 u,v,w(1\leq u,v\leq n,u\neq v,0\leq w\leq 10^9),表示图上存在一条从 uv 的边权为 w 的边。保证给出的图中没有重边和自环,但不保证给出的图是连通图。

保证对于所有的测试用例,n 的总和与 m 的总和均不超过 2\cdot 10^5

输出描述:

对于每组测试用例:

仅输出一行,包含一个整数,表示答案。
示例1

输入

复制
1
3 3
1 2 1
2 3 5
3 1 10

输出

复制
15

说明

对于第一组测试用例:

图的形态如下所示:



可以将 3 号节点染成黑色,其余节点染成白色,边权异或和为 10\ \text{xor}\ 5 = 15