#P12858. 简单的图

简单的图

简单的图

Problem Description

Kou 今天要准备一张图招待 Hikari 和 Tairitsu 这对好朋友,然而三个人对图的结构不同的要求,更具体地,对于一张简单无向正权图而言:

  • Kou 要保证 Hikari 和 Tairitsu 保持平衡不打架,所以保证图上任意两个简单环的边权和相等。
  • Hikari 喜欢 33,因此她要求每个点度数不超过 33
  • Tairitsu 不喜欢 33,因此她要求任意两点间简单路径数不是 33 的倍数。 于是 Kou 画了一张符合三个人要求的简单无向正权图。后来 Kou 想要隐藏图里美好的性质,她将其中一部分边的权值改成了新的权值(新权值可能为 00)。因此,修改之后原本美好的性质可能就不存在了。 现在她们给出Kou 修改完后的图,同时给出多组询问,每次询问 S,TS,T 间所有简单路径中,边权异或和最大的那条。

Input

第一行读入三个整数 n,m,q n,m,q 2n1062\le n\le 10^61m1.5×1061\le m \le 1.5\times 10^61q5×1041\le q\le 5\times 10^4),表示图的点数、边数和询问组数。 接下来 mm 行,每行三个整数 u,v,wu,v,w 表示一条 u,vu,v 之间边权为 ww0w<216 0\le w < 2^{16} )的边。 再接下来 qq 行,每行两个整数 S,TS,T 表示一组询问。保证 STS\ne T

Output

输出 qq 行,对于每组询问,输出边权异或和的最大值。

Sample Input

8 8 3
1 2 3
2 3 5
2 5 2
3 4 1
4 5 0
4 6 1
6 7 4
6 8 2
7 8
1 7
3 5

Sample Output

6
4
7

Hint

如果我们用 \oplus 表示异或,那么:

  • 第一次询问 7,87,8 间边权异或和最大值,这两点间只有一条简单路径 7687-6-8,异或和为 42=64\oplus 2=6
  • 第二次询问 1,71,7 间边权异或和最大值,这两点间有两条简单路径 1234671-2-3-4-6-71254671-2-5-4-6-7,边权异或和分别是 2244,其中较大值为 44
  • 第三次询问 3,53,5 间边权异或和最大值,这两点间有两条简单路径 3253-2-53453-4-5,边权异或和分别是 7711,其中较大值为 77

Source

2025“钉耙编程”中国大学生算法设计暑期联赛(9)