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$ - 所有输入值均为整数。