atcoder#ABC305E. [ABC305E] Art Gallery on Graph

[ABC305E] Art Gallery on Graph

题目描述

頂点に 1 1 から N N の、辺に 1 1 から M M の番号がついた N N 頂点 M M 辺の単純無向グラフがあります。辺 i i は頂点 ai a_i と頂点 bi b_i を結んでいます。
1 1 から K K までの番号がついた K K 人の警備員が頂点上にいます。警備員 i i は頂点 pi p_i にいて、体力は hi h_i です。ここで全ての pi p_i は互いに異なります。

頂点 v v が次の条件を満たす時、頂点 v v 警備されている頂点 と呼びます。

  • 頂点 v v と頂点 pi p_i の距離が hi h_i 以下であるような警備員 i i が少なくとも 1 人存在する。

ここで、頂点 u u と頂点 v v の距離とは、頂点 u u と頂点 v v を結ぶパスに含まれる辺の本数の最小値のことをいいます。

グラフに含まれる頂点のうち、警備されている頂点を 小さい方から順に 全て列挙してください。

输入格式

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

N N M M K K a1 a_1 b1 b_1 a2 a_2 b2 b_2 \vdots aM a_M bM b_M p1 p_1 h1 h_1 p2 p_2 h2 h_2 \vdots pK p_K hK h_K

输出格式

答えを以下の形式で出力せよ。ここで、

  • 警備されている頂点の個数を G G
  • 警備されている頂点の頂点番号を 昇順に 並べたものを v1, v2, , vG v_1,\ v_2,\ \dots,\ v_G

と定義する。

G G v1 v_1 v2 v_2 \dots vG v_G

题目大意

题面

给定一张 NN 个点(编号为 1N1 \sim N),MM 条边的无向图,保证无重边无自环。现在有 KK 个被标记的点,其中第 ii 个被标记的点的编号为 pip_i,任何从 pip_i 出发经过不超过 hih_i 条边能到达的点都会被染色(包括 pip_i 自身)。你需要求出这张图最终有哪些点被染色。

输入格式

第一行三个正整数 N,M,KN,M,K,含义见题目描述。

接下来 MM 行,每行两个正整数 ai,bia_i,b_i,表示编号为 ai,bia_i,b_i 的点连有一条无向边。

接下来 KK 行,每行两个正整数 pi,hip_i,h_i,含义见题目描述。

输出格式

第一行一个数字 GG,表示被染色的点的个数。

第二行 GG 个数字,表示被染色的点,按照从小到大的顺序输出。

数据范围

1N2×1051 \le N \le 2 \times 10^50M2×1050 \le M \le 2 \times 10^51K,ai,bi,pi,hiN1 \le K,a_i,b_i,p_i,h_i \le Npip_i 互不相同。

保证给定的图无重边,无自环。

5 5 2
1 2
2 3
2 4
3 5
1 5
1 1
5 2
4
1 2 3 5
3 0 1
2 3
1
2
10 10 2
2 1
5 1
6 1
2 4
2 5
2 10
8 5
8 6
9 6
7 9
3 4
8 2
7
1 2 3 5 6 8 9

提示

制約

  • 1  N  2 × 105 1\ \leq\ N\ \leq\ 2\ \times\ 10^5
  • $ 0\ \leq\ M\ \leq\ \min\ \left(\frac{N(N-1)}{2},\ 2\ \times\ 10^5\ \right) $
  • 1  K  N 1\ \leq\ K\ \leq\ N
  • 1  ai, bi  N 1\ \leq\ a_i,\ b_i\ \leq\ N
  • 入力で与えられるグラフは単純
  • 1  pi  N 1\ \leq\ p_i\ \leq\ N
  • pi p_i は互いに異なる
  • 1  hi  N 1\ \leq\ h_i\ \leq\ N
  • 入力で与えられる値は全て整数

Sample Explanation 1

警備されている頂点は 1, 2, 3, 5 1,\ 2,\ 3,\ 5 4 4 頂点です。 これらの頂点が警備されている頂点である理由は以下の通りです。 - 頂点 1 1 と頂点 p1 = 1 p_1\ =\ 1 の距離は 0 0 で、これは h1 = 1 h_1\ =\ 1 以下です。よって頂点 1 1 は警備されている頂点です。 - 頂点 2 2 と頂点 p1 = 1 p_1\ =\ 1 の距離は 1 1 で、これは h1 = 1 h_1\ =\ 1 以下です。よって頂点 2 2 は警備されている頂点です。 - 頂点 3 3 と頂点 p2 = 5 p_2\ =\ 5 の距離は 1 1 で、これは h2 = 2 h_2\ =\ 2 以下です。よって頂点 3 3 は警備されている頂点です。 - 頂点 5 5 と頂点 p1 = 1 p_1\ =\ 1 の距離は 1 1 で、これは h1 = 1 h_1\ =\ 1 以下です。よって頂点 5 5 は警備されている頂点です。

Sample Explanation 2

入力で与えられるグラフに辺がない場合もあります。