atcoder#ARC150C. [ARC150C] Path and Subsequence

[ARC150C] Path and Subsequence

题目描述

N N 頂点 M M 辺の連結無向グラフ G G があります。頂点には 1 1 から N N の番号がついています。i i 番目の辺は頂点 Ui, Vi U_i,\ V_i を結びます。

また、長さ N N の整数列 A=(A1, A2, , AN) A=(A_1,\ A_2,\ \dots,\ A_N) 、および長さ K K の整数列 B=(B1, B2, , BK) B=(B_1,\ B_2,\ \dots,\ B_K) が与えられます。

G, A, B G,\ A,\ B が以下の条件を満たすか判定してください。

  • G G における頂点 1 1 から N N への任意の単純パス v=(v1, v2, , vk) (v1=1, vk=N) v=(v_1,\ v_2,\ \dots,\ v_k)\ (v_1=1,\ v_k=N) に対し、B B (Av1, Av2, , Avk) (A_{v_1},\ A_{v_2},\ \dots,\ A_{v_k}) の(連続とは限らない)部分列になる。

输入格式

入力は以下の形式で標準入力から与えられます。

N N M M K K U1 U_1 V1 V_1 U2 U_2 V2 V_2 \vdots UM U_M VM V_M A1 A_1 A2 A_2 \dots AN A_N B1 B_1 B2 B_2 \dots BK B_K

输出格式

条件を満たす場合 Yes と、満たさない場合 No と出力してください。

题目大意

给定一个数组 BB 和一张点带点权的图,询问是否「所有从 11nn 的路径上依次经过的点的点权形成的序列」都含有 BB 作为子序列。

第一行输入 n,m,kn,m,k,表示点数、边数、BB 数组的长度,接着 mm 行每行两个数 u,vu,v 表示图的一条边,下一行 nn 数表示点权数组,最后一行 kk 数表示 BB 数组。

若给出条件正确,输出 Yes;否则,输出 No

6 6 3
1 2
1 3
2 4
3 5
4 6
5 6
1 2 4 5 2 6
1 2 6
Yes
5 5 3
1 2
2 3
3 4
4 5
2 5
1 2 3 5 2
1 3 2
No
10 20 3
5 6
5 10
5 7
3 5
3 7
2 6
3 8
4 5
5 8
7 10
1 6
1 9
4 6
1 2
1 4
6 7
4 8
2 5
3 10
6 9
2 5 8 5 1 5 1 1 5 10
2 5 1
Yes

提示

制約

  • 2  N  105 2\ \leq\ N\ \leq\ 10^5
  • 1  K  N 1\ \leq\ K\ \leq\ N
  • N1  M  2 × 105 N-1\ \leq\ M\ \leq\ 2\ \times\ 10^5
  • 1  Ui < Vi  N 1\ \leq\ U_i\ <\ V_i\ \leq\ N
  • i  j i\ \neq\ j ならば (Ui, Vi)  (Uj, Vj) (U_i,\ V_i)\ \neq\ (U_j,\ V_j)
  • 1  Ai, Bi  N 1\ \leq\ A_i,\ B_i\ \leq\ N
  • 入力される値はすべて整数
  • 与えられるグラフ G G は連結

Sample Explanation 1

頂点 1 1 から頂点 6 6 への単純パスは (1, 2, 4, 6), (1, 3, 5, 6) (1,\ 2,\ 4,\ 6),\ (1,\ 3,\ 5,\ 6) 2 2 通りであり、これらに対する (Av1, Av2, , Avk) (A_{v_1},\ A_{v_2},\ \dots,\ A_{v_k}) はそれぞれ (1, 2, 5, 6), (1, 4, 2, 6) (1,\ 2,\ 5,\ 6),\ (1,\ 4,\ 2,\ 6) です。 これらはいずれも B=(1, 2, 6) B=(1,\ 2,\ 6) を部分列に持つので答えは Yes です。

Sample Explanation 2

頂点 1 1 から頂点 5 5 への単純パスである (1, 2, 5) (1,\ 2,\ 5) に対する (Av1, Av2, , Avk) (A_{v_1},\ A_{v_2},\ \dots,\ A_{v_k}) (1, 2, 2) (1,\ 2,\ 2) であり、これは B=(1, 3, 2) B=(1,\ 3,\ 2) を部分列に持ちません。