牛牛的无向图
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

牛牛有一张 n 个点,m 条边的无向图,每条边有一个边权 w_i

我们定义一条路径的权值是这个路径包含的边的权值的最大值。

定义 d(u,v) 表示在无向图中点 u 能到达点 v 的所有路径中权值最小的路径的权值

现在牛牛给你 q 次询问,每次询问给出一个 L ,询问 。其中 [C] 表示当命题 C 为真的时候为 1 否则为 0。比如

为了防止输入过大,选手需要在自己的程序内生成要输入的所有数据,可以参考如下代码:
unsigned int SA, SB, SC; int n, m, q, LIM;
unsigned int rng61(){
    SA ^= SA << 16;
    SA ^= SA >> 5;
    SA ^= SA << 1;
    unsigned int t = SA;
    SA = SB;
    SB = SC;
    SC ^= t ^ SA;
    return SC;
}

void gen(){
    scanf("%d%d%d%u%u%u%d", &n, &m, &q, &SA, &SB, &SC, &LIM);
    for(int i = 1; i <= m; i++){
        u[i] = rng61() % n + 1;
        v[i] = rng61() % n + 1;
        w[i] = rng61() % LIM;
    }
    for(int i = 1; i <= q; i++){
        L[i] = rng61() % LIM;
    }
}
生成的 u_i,v_i,w_i 表示第 条边的属性,L_i 表示第 次询问输入的数。

输入描述:

一行七个正整数 

输出描述:

一行,表示所有答案的异或和。
示例1

输入

复制
5 7 5 480944053 701657892 339027200 10

输出

复制
1

说明

五次询问分别是 7,4,0,4,9
答案分别是 3,3,1,3,3
异或后答案是 1。

备注: