K - XOR回廊 Editorial /

Time Limit: 5 sec / Memory Limit: 128 MB

問題文

KU大学では一風変わったラリーゲームが人気である. このゲームの舞台であるサーキットには,N 個の休憩所と M 個の道があり,i 番目の道は f_i 番目の休憩所と t_i 番目の休憩所の間にある. すべての道にはチェックポイントが一つずつ存在し,道 i のチェックポイントを通過するとどちらの向きで通っても p_i の得点がXORで加算される.XORで加算される.大事なことなので2回言いました.

このゲームでは,同じ休憩所や道を何度通っても良いし, ゴールにたどり着いてもそのままラリーを続行することができるが, 道の途中にあるチェックポイントを迂回して別の休憩所へ行くことは禁止されている. そのため,どのような道順をたどれば高い得点を取ることができるかを頑張って考えなければならない点が人気のある所以である.

今回は Q 人の参加者がいて,j 番目の参加者は a_j の休憩所からスタートして,ゴールである b_j の休憩所まで行くことになっているようだ. 運営側の人間としてそれぞれの参加者の最高得点を前もって調べておくことにした.

入力形式

入力は以下の形式で与えられる.なお休憩所の番号は0-indexedである.

N M Q
f_1 t_1 p_1
...
f_M t_M p_M
a_1 b_1
...
a_Q b_Q

出力形式

Q 行出力し,j 行目には a_j 番目の休憩所から b_j 番目の休憩所への経路で得られる得点の最大値を出力せよ.

制約

  • 1 \leq N \leq 10^5
  • 0 \leq M \leq 2 \times 10^5
  • 1 \leq Q \leq 10^5
  • 0 \leq f_i, t_i \lt N, f_i \neq t_i
  • 0 \leq p_i \lt 2^{60}
  • 0 \leq a_j, b_j \lt N
  • どの休憩所からでも,道を辿っていけば任意の休憩所へたどり着ける.
  • 休憩所 f_i,t_i 間を結ぶ道は高々一つしか存在しない.
  • 入力値はすべて整数である.

この問題の判定には,60 点分のテストケースのグループが設定されている.このグループに含まれるテストケースは上記の制約に加えて下記の制約も満たす.

  • M \leq 20

入出力例

入力例1

5 5 3
0 1 7
1 2 22
2 3 128
3 4 128
4 2 128
0 1
0 0
3 4

出力例1

135
128
128

Writer : 森槙悟
Tester : 田村和範

Source Name

KUPC 2012