AT_abc453_f [ABC453F] Avoid Division
题目描述
给定一棵有 $N$ 个顶点的树,点编号为 $1,2,\dots,N$,第 $1\le i\le N-1$ 条边连接点 $U_i$ 和 $V_i$。
现在要用颜色 $1,2,\dots,K$ 给每个顶点染色。每个点只能染一种颜色,颜色 $i$ 最多可以用于染色 $C_i$ 个顶点。
判断是否存在满足以下条件的染色方案,如果存在则输出一种合法的染色方案。
- 对于每条边,存在某个 $1\le i\le K$,使得删除这条边后得到的两个连通块中都至少有一个点被染成颜色 $i$。
本题多测,在一个测试点中,你需要解决 $T$ 组数据。
输入格式
第一行一个正整数 $T$ 表示数据组数。
对于一组数据:
- 第一行两个正整数 $N,K$
- 接下来 $N-1$ 行每行两个正整数 $U_i,V_i$ 表示树的一条边。
- 接下来一行 $K$ 个正整数表示 $C_1,C_2,\dots,C_k$。
输出格式
共 $T$ 行。对于每组数据输出一行作为答案。
对于一组数据,如果不存在合法的染色方案,则输出一行一个整数 $-1$。否则,输出一行 $N$ 个整数 $X_1,X_2,\dots,X_N$($1\leq X_i\leq K$),表示将顶点 $i$ 染成颜色 $X_i$,代表一个合法的方案。
说明/提示
### 样例解释
对于第一组数据给出的方案:
如果删除边 $(1,2)$,树被分割成包含点 $1,3$ 的连通块和包含点 $2,4,5$ 的连通块;两个连通块中都包含染了颜色 $2$ 的顶点(点 $3$ 和点 $2$)。
可以证明,无论切断给定树的哪条边,都存在这样的颜色,因此样例输出的染色方案满足条件。
对于第二组数据,显然不存在满足条件的合法染色方案。
### 数据范围
- $1\le T\le 10^5$
- $2\le N\le 3\times 10^5$,$\sum N\le 3\times 10^5$
- $1\le K\le N$
- $1\le U_i,V_i\le N$
- 给定的图是一棵树。
- $1\le C_i\le N$
- $C_1+C_2+\dots+C_K\ge N$
- 所有输入值均为整数。