#abc299e. E - Nearest Black Vertex

E - Nearest Black Vertex

Score : 500500 points

问题描述

你得到一个包含 NN 个顶点和 MM 条边的简单连通无向图(简单图不含自环且不含多重边)。对于 i=1,2,,Mi = 1, 2, \ldots, M,第 ii 条边在顶点 uiu_i 和顶点 viv_i 之间双向连接。

确定是否存在一种方法为每个顶点涂上黑色或白色以满足以下两个条件,并在存在这样的方法时展示其中一种。

  • 至少有一个顶点被涂成黑色。
  • 对于所有 i=1,2,,Ki = 1, 2, \ldots, K,满足以下条件:
    • 顶点 pip_i 到任意一个被涂成黑色顶点的最短距离恰好为 did_i

这里,顶点 uu 和顶点 vv 之间的距离是在一条连接 uuvv 的路径中所需的最小边数。

以上为通义千问 qwen-max 翻译,仅供参考。

Problem Statement

You are given a simple connected undirected graph with NN vertices and MM edges (a simple graph contains no self-loop and no multi-edges).
For i=1,2,,Mi = 1, 2, \ldots, M, the ii-th edge connects vertex uiu_i and vertex viv_i bidirectionally.

Determine whether there is a way to paint each vertex black or white to satisfy both of the following conditions, and show one such way if it exists.

  • At least one vertex is painted black.
  • For every i=1,2,,Ki = 1, 2, \ldots, K, the following holds:
    • the minimum distance between vertex pip_i and a vertex painted black is exactly did_i.

Here, the distance between vertex uu and vertex vv is the minimum number of edges in a path connecting uu and vv.

Constraints

  • 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
  • The given graph is simple and connected.
  • All values in the input are integers.

Input

The input is given from Standard Input in the following format:

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

Output

If there is no way to paint each vertex black or white to satisfy the conditions, print No.

Otherwise, print Yes in the first line, and a string SS representing a coloring of the vertices in the second line, as shown below.

Here, SS is a string of length NN such that, for each i=1,2,,Ni = 1, 2, \ldots, N, the ii-th character of SS is 11 if vertex ii is painted black and 00 if white.

Yes

SS

If multiple solutions exist, you may print any of them.

Sample Input 1

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

Sample Output 1

Yes
10100

One way to satisfy the conditions is to paint vertices 1,31, 3 black and vertices 2,4,52, 4, 5 white.
Indeed, for each i=1,2,3,4,5i = 1, 2, 3, 4, 5, let AiA_i denote the minimum distance between vertex ii and a vertex painted black, and we have (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), where A1=0,A5=2A_1 = 0, A_5 = 2.

Sample Input 2

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

Sample Output 2

No

There is no way to satisfy the conditions by painting each vertex black or white, so you should print No.

Sample Input 3

1 0
0

Sample Output 3

Yes
1

update @ 2024/3/10 12:24:50