#JXGQ202D. Nearest Black Vertex

Nearest Black Vertex

问题陈述。

给定一个简单(无自循环和多条边)且相连的无向图,图中有 NN 个顶点和 MM 条边。 对于 i=1,2,,Mi = 1, 2, \ldots, M ,第 ii 条边是连接顶点 uiu_i 和顶点 viv_i 的无向边。

请判断是否有一种将每个顶点涂成白色或黑色的方法同时满足以下 22 两个条件,如果有,请举例说明。

  • 11 多个顶点被涂成黑色。
  • 对于所有 i=1,2,,Ki = 1, 2, \ldots, K ,以下条件都成立。
    • 顶点 pip_i 与 "与顶点 pip_i 距离最小的涂黑顶点 "之间的距离正好是 did_i

这里,顶点 uu 和顶点 vv 之间的距离定义为连接 uuvv 的路径中可能的最小边数。

限制。

  • 1N20001 \leq N \leq 2000
  • N1Mmin{N(N1)/2,2000}N-1 \leq M \leq \min\lbrace N(N-1)/2, 2000 \rbrace
  • 1ui,viN1 \leq u_i, v_i \leq N
  • 0KN0 \leq K \leq N
  • 1p1<p2<<pKN1 \leq p_1 \lt p_2 \lt \cdots \lt p_K \leq N
  • 0diN0 \leq d_i \leq N
  • 给定图形简单且连通
  • 所有输入均为整数

输入。

输入通过标准输入,格式如下。

NN MM

u1u_1 v1v_1

u2u_2 v2v_2

\vdots

uMu_M vMv_M

KK

p1p_1 d1d_1

p2p_2 d2d_2

\vdots

pKp_K dKd_K

输出。

如果无法将每个顶点涂成白色或黑色以满足问题陈述中的条件,则输出 "否"。 如果存在,则在第 11 行输出 "是",并在第 22 行输出代表每个顶点涂色方法的字符串 SS ,格式如下。 其中,{7595951638}是长度为 NN 的字符串, i=1,2,,Ni = 1, 2, \ldots, NSSii 字符为 11 ,将顶点 ii 绘制为黑色时为 11 ,将顶点 ii 绘制为白色时为 00

Yes
S

如果答案不止一个,则以输出的答案为准。

入力例 1

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

输出示例 1

Yes
10100

例如,将顶点 1,31, 3 涂成黑色,将顶点 2,4,52, 4, 5 涂成白色,就满足了问题陈述中的条件。 事实上,对于 i=1,2,3,4,5i = 1, 2, 3, 4, 5 ,顶点 ii 与 "与顶点 ii 距离最小的涂成黑色的顶点 "之间的距离是 AiA_i(A1,A2,A3,A4,A5)=(0,1,0,1,2)(A_1, A_2, A_3, A_4, A_5) = (0, 1, 0, 1, 2) ,尤其是 A1=0,A5=2A_1 = 0, A_5 = 2 成立。

入力例 2

5 5
1 2
2 3
3 1
3 4
4 5
5
1 1
2 1
3 1
4 1
5 1

输出示例 2

No

输出 "否",因为无法将每个顶点涂成白色或黑色以满足问题陈述中的条件。