输入的第一行包含 N 和 M。
接下来 M 行为三个整数A,B,C,表示 A 到 B 之间有一条长度为 C 的双向泊油路。
接下来一个整数 Q,a1,a2,代表询问总数和随机树生成器的两个参数。注意 a1,a2 可能达到 unsigned long long 类型。关于随机数生成器:
typedef unsigned long long ull; ull myRand(ull &k1, ull &k2){ ull k3 = k1, k4 = k2; k1 = k4; k3 ^= (k3 <<23); k2 = k3 ^ k4 ^ (k3 >>17) ^ (k4 >>26); return k2 + k4; } pair<int,int>myRanq(ull&k1,ull&k2,int MAXN){ int x=myRand(k1,k2)%MAXN+1,y=myRand(k1,k2)%MAXN+1; if(x>y)return make_pair(y,x); else return make_pair(x,y); }调用时传入 myRanq(a1,a2,n),会返回一个 pair<int,int> 类表示询问的两个端点。
输出 1 行,表示所有答案的异或和。