#4460. Crystal Switches

0

Crystal Switches

Crystal Switches

题目描述

给你一个由 NN 个顶点和 MM 条边组成的无向图。
对于 i=1,2,…,Mi = 1, 2, \ldots, M,第 ii 条边是连接顶点 uiu_i 与 viv_i 的无向边,如果 ai=1a_i = 1 则该边起始时可通行,如果 ai=0a_i = 0 则起始时不可通行。 此外,有开关位于 KK 个顶点上:顶点 s1s_1、顶点 s2s_2、…\ldots、顶点 sKs_K。 Takahashi 起始位于顶点 11,并会重复执行下面两种操作之一:Move 或 Hit Switch,他每次可以任选其一,并且可以执行任意多次。

Move:选择一条与他当前所在顶点相邻的边所连的顶点,并移动到该顶点。 Hit Switch:如果他当前所在的顶点上有开关,则按下它。这会反转图中每条边的可通行性。也就是说,可通行的边将变为不可通行,反之亦然。

判断 Takahashi 是否能到达顶点 NN,如果能,输出到达顶点 NN 之前他执行 Move 的最小可能次数。

输入格式

输入从标准输入按照以下格式给出: NN MM KK u1u_1 v1v_1 a1a_1 u2u_2 v2v_2 a2a_2 ⋮\vdots uMu_M vMv_M aMa_M s1s_1 s2s_2 …\ldots sKs_K

输出格式

如果 Takahashi 无法到达顶点 NN,输出 −1-1; 如果可以,输出到达顶点 NN 之前他执行 Move 的最小可能次数。

5 5 2
1 3 0
2 3 1
5 4 1
2 1 1
1 4 0
3 4
5
4 4 2
4 3 0
1 2 1
1 2 0
2 1 1
2 4
-1

提示

2≤N≤2×1052 \leq N \leq 2 \times 10^5 1≤M≤2×1051 \leq M \leq 2 \times 10^5 0≤K≤N0 \leq K \leq N 1≤ui,vi≤N1 \leq u_i, v_i \leq N ui≠viu_i \neq v_i ai∈{0,1}a_i \in \lbrace 0, 1\rbrace 1≤s1<s2<⋯<sK≤N1 \leq s_1 \lt s_2 \lt \cdots \lt s_K \leq N 输入中的所有值均为整数。Takahashi 可以按如下方式到达顶点 NN。

从顶点 11 移动到顶点 22。 从顶点 22 移动到顶点 33。 按下顶点 33 上的开关。这会反转图中每条边的可通行性。 从顶点 33 移动到顶点 11。 从顶点 11 移动到顶点 44。 按下顶点 44 上的开关。这会再次反转图中每条边的可通行性。 从顶点 44 移动到顶点 55。

这里,Move 共执行了五次,这是最小可能次数。
给定的图可能是不连通的或包含多重边。 在这个样例输入中,Takahashi 无法到达顶点 NN,因此你应该输出 −1-1。

标签: AtCoder|abc277E

来源

AtCoder|abc277E