AT_abc299_e [ABC299E] Nearest Black Vertex

题目描述

给定一个包含 $N$ 个顶点和 $M$ 条边的无向图,该图是简单图(不包含自环和重边)且连通。 对于 $i = 1, 2, \ldots, M$,第 $i$ 条边连接顶点 $u_i$ 和顶点 $v_i$。 请判断是否存在一种将每个顶点涂成白色或黑色的方法,使得同时满足以下两个条件,并在存在时给出一种方案。 - 至少有一个顶点被涂成黑色。 - 对于所有 $i = 1, 2, \ldots, K$,都满足以下条件: - 顶点 $p_i$ 到“所有被涂成黑色的顶点中,距离 $p_i$ 最近的顶点”的距离恰好为 $d_i$。 这里,顶点 $u$ 和顶点 $v$ 之间的距离定义为连接 $u$ 和 $v$ 的路径中边的最小数量。

输入格式

输入以以下格式从标准输入读入。 > $N$ $M$ > $u_1$ $v_1$ > $u_2$ $v_2$ > $\vdots$ > $u_M$ $v_M$ > $K$ > $p_1$ $d_1$ > $p_2$ $d_2$ > $\vdots$ > $p_K$ $d_K$

输出格式

如果不存在满足题意的涂色方法,则输出 `No`。 如果存在,则按如下格式输出:第一行输出 `Yes`,第二行输出一个长度为 $N$ 的字符串 $S$,表示每个顶点的涂色方案。对于 $i = 1, 2, \ldots, N$,若第 $i$ 个顶点被涂成黑色,则 $S$ 的第 $i$ 个字符为 $1$,若被涂成白色,则为 $0$。 > Yes > $S$ 如果有多种方案,输出任意一种均可。

说明/提示

### 数据范围 - $1 \leq N \leq 2000$ - $N-1 \leq M \leq \min\lbrace N(N-1)/2, 2000 \rbrace$ - $1 \leq u_i, v_i \leq N$ - $0 \leq K \leq N$ - $1 \leq p_1 < p_2 < \cdots < p_K \leq N$ - $0 \leq d_i \leq N$ - 给定的图是简单且连通的 - 所有输入均为整数 ### 样例解释 1 例如,将顶点 $1, 3$ 涂成黑色,顶点 $2, 4, 5$ 涂成白色,就是一种满足题意的方案。实际上,对于 $i = 1, 2, 3, 4, 5$,用 $A_i$ 表示顶点 $i$ 到“所有黑色顶点中距离 $i$ 最近的顶点”的距离,则 $(A_1, A_2, A_3, A_4, A_5) = (0, 1, 0, 1, 2)$,特别地,$A_1 = 0, A_5 = 2$ 成立。 ### 样例解释 2 不存在满足题意的涂色方法,因此输出 `No`。 由 ChatGPT 4.1 翻译