AT_abc299_e.[ABC299E] Nearest Black Vertex
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个包含 N 个顶点和 M 条边的无向图,该图是简单图(不包含自环和重边)且连通。
对于 i=1,2,…,M,第 i 条边连接顶点 ui 和顶点 vi。
请判断是否存在一种将每个顶点涂成白色或黑色的方法,使得同时满足以下两个条件,并在存在时给出一种方案。
- 至少有一个顶点被涂成黑色。
- 对于所有 i=1,2,…,K,都满足以下条件:
- 顶点 pi 到“所有被涂成黑色的顶点中,距离 pi 最近的顶点”的距离恰好为 di。
这里,顶点 u 和顶点 v 之间的距离定义为连接 u 和 v 的路径中边的最小数量。
输入格式
输入以以下格式从标准输入读入。
N M
u1 v1
u2 v2
⋮
uM vM
K
p1 d1
p2 d2
⋮
pK dK
输出格式
如果不存在满足题意的涂色方法,则输出 No。
如果存在,则按如下格式输出:第一行输出 Yes,第二行输出一个长度为 N 的字符串 S,表示每个顶点的涂色方案。对于 i=1,2,…,N,若第 i 个顶点被涂成黑色,则 S 的第 i 个字符为 1,若被涂成白色,则为 0。
Yes
S
如果有多种方案,输出任意一种均可。
输入输出样例
输入#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
输入#3
1 0 0
输出#3
Yes 1
说明/提示
数据范围
- 1≤N≤2000
- N−1≤M≤min{N(N−1)/2,2000}
- 1≤ui,vi≤N
- 0≤K≤N
- 1≤p1<p2<⋯<pK≤N
- 0≤di≤N
- 给定的图是简单且连通的
- 所有输入均为整数
样例解释 1
例如,将顶点 1,3 涂成黑色,顶点 2,4,5 涂成白色,就是一种满足题意的方案。实际上,对于 i=1,2,3,4,5,用 Ai 表示顶点 i 到“所有黑色顶点中距离 i 最近的顶点”的距离,则 (A1,A2,A3,A4,A5)=(0,1,0,1,2),特别地,A1=0,A5=2 成立。
样例解释 2
不存在满足题意的涂色方法,因此输出 No。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?