传送门:hdu5637
题解
虽然
x
x
x表示成32位,然而
s
i
,
t
i
,
a
i
≤
1
0
5
s_i,t_i,a_i\leq 10^5
si,ti,ai≤105实际上只需要
2
17
2^{17}
217内的数。
于是每次从0开始
b
f
s
bfs
bfs,求到
i
i
i的最短路(最少操作次数)
d
i
s
i
dis_i
disi即可(
0
≤
i
≤
1
0
5
0\leq i\leq 10^5
0≤i≤105)。
询问
O
(
1
)
O(1)
O(1)回答:
d
i
s
[
s
x
o
r
t
]
dis[s\ xor \ t]
dis[s xor t]
时间复杂度 O ( T ( a i ( n + log a i ) + m ) ) O(T(a_i(n+\log a_i)+m)) O(T(ai(n+logai)+m))