AT_abc453_f.[ABC453F] Avoid Division

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

给定一棵有 NN 个顶点的树,点编号为 1,2,…,N1,2,\dots,N,第 1≤i≤N−11\le i\le N-1 条边连接点 UiU_i 和 ViV_i。

现在要用颜色 1,2,…,K1,2,\dots,K 给每个顶点染色。每个点只能染一种颜色,颜色 ii 最多可以用于染色 CiC_i 个顶点。

判断是否存在满足以下条件的染色方案,如果存在则输出一种合法的染色方案。

  • 对于每条边,存在某个 1≤i≤K1\le i\le K,使得删除这条边后得到的两个连通块中都至少有一个点被染成颜色 ii。

本题多测,在一个测试点中,你需要解决 TT 组数据。

输入格式

第一行一个正整数 TT 表示数据组数。

对于一组数据:

  • 第一行两个正整数 N,KN,K
  • 接下来 N−1N-1 行每行两个正整数 Ui,ViU_i,V_i 表示树的一条边。
  • 接下来一行 KK 个正整数表示 C1,C2,…,CkC_1,C_2,\dots,C_k。

输出格式

共 TT 行。对于每组数据输出一行作为答案。

对于一组数据,如果不存在合法的染色方案,则输出一行一个整数 −1-1。否则,输出一行 NN 个整数 X1,X2,…,XNX_1,X_2,\dots,X_N(1≤Xi≤K1\leq X_i\leq K),表示将顶点 ii 染成颜色 XiX_i,代表一个合法的方案。

输入输出样例

  • 输入#1

    2
    5 3
    1 2
    1 3
    2 4
    2 5
    2 2 2
    3 3
    1 2
    2 3
    1 1 1

    输出#1

    3 2 2 1 1
    -1

说明/提示

样例解释

对于第一组数据给出的方案:

如果删除边 (1,2)(1,2),树被分割成包含点 1,31,3 的连通块和包含点 2,4,52,4,5 的连通块;两个连通块中都包含染了颜色 22 的顶点(点 33 和点 22)。

可以证明,无论切断给定树的哪条边,都存在这样的颜色,因此样例输出的染色方案满足条件。

对于第二组数据,显然不存在满足条件的合法染色方案。

数据范围

  • 1≤T≤1051\le T\le 10^5
  • 2≤N≤3×1052\le N\le 3\times 10^5,∑N≤3×105\sum N\le 3\times 10^5
  • 1≤K≤N1\le K\le N
  • 1≤Ui,Vi≤N1\le U_i,V_i\le N
  • 给定的图是一棵树。
  • 1≤Ci≤N1\le C_i\le N
  • C1+C2+⋯+CK≥NC_1+C_2+\dots+C_K\ge N
  • 所有输入值均为整数。

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

首页