#abc299e. [abc299_e]Nearest Black Vertex
[abc299_e]Nearest Black Vertex
题目描述
给定一个简单的连通无向图,其中有 个顶点和 条边(简单图不包含自环和重边)。
对于 ,第 条边双向连接顶点 和 。
判断是否存在一种方法来将每个顶点涂成黑色或白色,以满足以下两个条件,并在存在的情况下展示一种这样的方法:
- 至少有一个顶点被涂成黑色。
- 对于每个 ,满足以下条件:
- 与顶点 距离最短的一个已涂成黑色的顶点恰好距离为 。
这里,顶点 和顶点 之间的距离是连接 和 的路径中边的最小数量。
约束条件
- 给定的图是简单连通图。
- 输入中的所有值均为整数。
输入
输入以以下格式从标准输入(Standard Input)给出:
输出
如果没有办法将每个顶点涂成黑色或白色来满足条件,则输出 No
。
否则,在第一行输出 Yes
,在第二行输出表示顶点着色的字符串 ,如下所示。
其中, 是一个长度为 的字符串,对于每个 , 的第 个字符为 表示顶点 被涂成黑色,为 表示白色。
Yes
如果存在多个解,则可以输出任意一个。
示例输入1
5 5
1 2
2 3
3 1
3 4
4 5
2
1 0
5 2
示例输出1
Yes
10100
满足条件的一种方法是将顶点 和 涂成黑色,将顶点 涂成白色。
事实上,对于每个 ,设 表示顶点 和一个已涂成黑色的顶点之间的最短距离,则 ,其中 。
示例输入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
无法通过将每个顶点涂成黑色或白色来满足条件,因此应输出 No
。
示例输入3
1 0
0
示例输出3
Yes
1