P14655 同归月
题目描述
小 L 给了你一棵树,树上有 $n-1$ 条边,第 $i$ 条边是 $(u_i,v_i)$,有的边已经确定了方向,小 L 希望你帮忙给剩下每条边确定方向,满足如下条件:
- 对于每个节点 $i$,设 $k_i$ 为 $i$ 节点的入边个数,那么 $W_{i,k_i}=1$,其中 $W_{i,j}$ 是一个输入的 $\in\{0,1\}$ 的数组。
- 设 $01$ 序列 $s_i$ 表示,若第 $i$ 条边从 $u_i$ 指向 $v_i$ ,那么 $s_i=0$,否则 $s_i=1$,在此基础上请你输出字典序最小的一组 $s_i$。
如果不存在,请输出 $-1$,否则输出一行表示字典序最小的 $s_i$。
输入格式
第一行一个整数 $T$ 代表数据组数。
对于每组数据,第一行一个整数 $n$。
接下来 $n-1$ 行,每行两个整数 $u_i,v_i$。
接下来 $n$ 行,每行一个长度为 $d_i+1$ 的 $01$ 串,代表 $W_{i,0}\to W_{i,d_i}$,其中 $d_i$ 是 $i$ 的度数。
接下来一行长度为 $n-1$ 的包含 $01?$ 的字符串,其中 $0,1$ 代表这条边已经定向,$?$ 代表没有定向。
输出格式
如果无解,输出 `-1`。
否则输出一行长度为 $n-1$ 的 $01$ 字符串代表 $s$。
说明/提示
对于 $20\%$ 的数据,$T\leq 20,n\leq 16$。
对于 $40\%$ 的数据,$\sum n\leq 100$。
对于 $60\%$ 的数据,$\sum n\leq 2000$。
对于另外 $20\%$ 的数据,输入的字符串只有 $?$。
对于 $100\%$ 的数据,$2\leq \sum n\leq 5\times 10^5,n\geq 2$。