#P12858. 简单的图
简单的图
简单的图
Problem Description
Kou 今天要准备一张图招待 Hikari 和 Tairitsu 这对好朋友,然而三个人对图的结构不同的要求,更具体地,对于一张简单无向正权图而言:
- Kou 要保证 Hikari 和 Tairitsu 保持平衡不打架,所以保证图上任意两个简单环的边权和相等。
- Hikari 喜欢 ,因此她要求每个点度数不超过 。
- Tairitsu 不喜欢 ,因此她要求任意两点间简单路径数不是 的倍数。 于是 Kou 画了一张符合三个人要求的简单无向正权图。后来 Kou 想要隐藏图里美好的性质,她将其中一部分边的权值改成了新的权值(新权值可能为 )。因此,修改之后原本美好的性质可能就不存在了。 现在她们给出Kou 修改完后的图,同时给出多组询问,每次询问 间所有简单路径中,边权异或和最大的那条。
Input
第一行读入三个整数 (,,),表示图的点数、边数和询问组数。 接下来 行,每行三个整数 表示一条 之间边权为 ()的边。 再接下来 行,每行两个整数 表示一组询问。保证 。
Output
输出 行,对于每组询问,输出边权异或和的最大值。
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
如果我们用 表示异或,那么:
- 第一次询问 间边权异或和最大值,这两点间只有一条简单路径 ,异或和为 。
- 第二次询问 间边权异或和最大值,这两点间有两条简单路径 和 ,边权异或和分别是 和 ,其中较大值为 。
- 第三次询问 间边权异或和最大值,这两点间有两条简单路径 和 ,边权异或和分别是 和 ,其中较大值为 。
Source
2025“钉耙编程”中国大学生算法设计暑期联赛(9)