AT_abc299_e.[ABC299E] Nearest Black Vertex

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个包含 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 到“所有被涂成黑色的顶点中,距离 pip_i 最近的顶点”的距离恰好为 did_i。

这里,顶点 uu 和顶点 vv 之间的距离定义为连接 uu 和 vv 的路径中边的最小数量。

输入格式

输入以以下格式从标准输入读入。

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

输出格式

如果不存在满足题意的涂色方法,则输出 No。
如果存在,则按如下格式输出:第一行输出 Yes,第二行输出一个长度为 NN 的字符串 SS,表示每个顶点的涂色方案。对于 i=1,2,…,Ni = 1, 2, \ldots, N,若第 ii 个顶点被涂成黑色,则 SS 的第 ii 个字符为 11,若被涂成白色,则为 00。

Yes
SS

如果有多种方案,输出任意一种均可。

输入输出样例

  • 输入#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≤20001 \leq N \leq 2000
  • N−1≤M≤min⁡{N(N−1)/2,2000}N-1 \leq M \leq \min\lbrace N(N-1)/2, 2000 \rbrace
  • 1≤ui,vi≤N1 \leq u_i, v_i \leq N
  • 0≤K≤N0 \leq K \leq N
  • 1≤p1<p2<⋯<pK≤N1 \leq p_1 < p_2 < \cdots < p_K \leq N
  • 0≤di≤N0 \leq d_i \leq N
  • 给定的图是简单且连通的
  • 所有输入均为整数

样例解释 1

例如,将顶点 1,31, 3 涂成黑色,顶点 2,4,52, 4, 5 涂成白色,就是一种满足题意的方案。实际上,对于 i=1,2,3,4,5i = 1, 2, 3, 4, 5,用 AiA_i 表示顶点 ii 到“所有黑色顶点中距离 ii 最近的顶点”的距离,则 (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),特别地,A1=0,A5=2A_1 = 0, A_5 = 2 成立。

样例解释 2

不存在满足题意的涂色方法,因此输出 No。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页