#AT2553. E - Nearest Black Vertex
E - Nearest Black Vertex
当前没有测试数据。
E - 最近的黑色顶点
得分:$500$ 分
题目描述
给定一个简单的连通无向图,图中有 $N$ 个顶点和 $M$ 条边(简单图不含自环和重边)。
对于 $i = 1, 2, \ldots, M$,第 $i$ 条边双向连接顶点 $u_i$ 和 $v_i$。
判断是否存在一种方式将每个顶点涂成黑色或白色,使得满足以下条件,并且如果存在一种方式,则输出其中一种。
- 至少有一个顶点是黑色的。
- 对于每个 $i = 1, 2, \ldots, K$,满足以下条件:
- 顶点 $p_i$ 和一个黑色顶点之间的最短距离为 $d_i$。
这里,两个顶点 $u$ 和 $v$ 之间的距离是连接 $u$ 和 $v$ 的路径中边数最少的。
约束条件
- $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 \lt p_2 \lt \cdots \lt p_K \leq N$
- $0 \leq d_i \leq N$
- 给定的图是简单连通图。
- 输入中的所有值都是整数。
输入
从标准输入中读入数据,格式如下所示:
输出
若不存在一种方式将每个顶点涂成黑色或白色来满足条件,则输出 No
。
否则,第一行输出 Yes
,第二行输出表示顶点涂色的字符串 $S$,如下所示。
这里,$S$ 是一个长度为 $N$ 的字符串,对于每个 $i = 1, 2, \ldots, N$,$S$ 的第 $i$ 个字符为 $1$ 表示顶点 $i$ 涂成黑色,为 $0$ 表示涂成白色。
若有多个解,则可以输出其中任意一个。
5 5
1 2
2 3
3 1
3 4
4 5
2
1 0
5 2
Yes
10100
一种满足条件的方式是将顶点 $1, 3$ 涂成黑色,顶点 $2, 4, 5$ 涂成白色。
确实,对于每个 $i = 1, 2, 3, 4, 5$,令 $A_i$ 表示顶点 $i$ 和一个黑色顶点之间的最短距离,则有 $(A_1, A_2, A_3, A_4, A_5) = (0, 1, 0, 1, 2)$,其中 $A_1 = 0, A_5 = 2$。
5 5
1 2
2 3
3 1
3 4
4 5
5
1 1
2 1
3 1
4 1
5 1
No
无法通过将每个顶点涂成黑色或白色来满足条件,因此应输出 No
。
1 0
0
Yes
1