AT_abc277_e [ABC277E] Crystal Switches

题目描述

【题面翻译】 给定一张 $n$ 个点 $m$ 条边的无向图。每条边有一个权值 $w \in \{0, 1\}$。$w = 0$ 表示这条边无法通过,$w = 1$ 则可以通过。 有 $k$ 个点上面有按钮 $s_i$。 你现在位于 $1$ 号点。每次,你可以做两件事情中的一件: 1. 移动。移到相邻的一个点上,注意这条边一定是可以通行的。 2. 按开关。此时,全部路的边权取反。即:$w = 0$ 变成 $1$,$w = 1$ 变成 $0$。 请问你是否能够到达 $n$ 号点。如果可以,求出最少移动次数。 translated by @[liangbowen](https://www.luogu.com.cn/user/367488).

输入格式

第一行三个数 $n, m, k$。 接下来 $m$ 行,每行三个数 $u_i, v_i, w_i$表示一条连接 $u_i$ 与 $v_i$ 的边。 最后一行 $k$ 个数,表示按钮的位置。

输出格式

如果无法到达,输出 $-1$。否则输出最少移动次数。

说明/提示

$2 \le n \le 2 \times 10^5$ $1 \le m \le 2 \times 10^5$ $1 \le k \le n$ 保证 $1 \le u_i, v_i \le n$,且 $u_i \ne v_i$。 保证 $1 \le s_1 < s_2 < \cdots < s_k \le n$。