luogu#P10787. [NOI2024] 树的定向

[NOI2024] 树的定向

题目描述

给定一棵含有 nn 个顶点的树,顶点从 11nn 编号,树上第 i(1in1)i(1\leq i\leq n-1) 条边连接顶点 uiu_iviv_i

现在,我们想要给树的每条边一个定向。任何一个定向都可以用一个长度为 n1n-1 的字符串 S=s1s2sn1S=s_1s_2\ldots s_{n-1} 来描述。其中 si=0s_i=0 代表第 ii 条边定向为 uiviu_i \to v_i,否则 si=1s_i=1 代表第 ii 条边定向为 viuiv_i\to u_i

给定 mm 个顶点对 (ai,bi)(a_i,b_i),其中 1ai,bin1\leq a_i,b_i \leq naibia_i\neq b_i

一个完美定向定义为:在此定向下,对于任意 1im1\leq i\leq maia_i 不能到达 bib_i

试求在所有完美定向中,所对应的字符串字典序最小的定向。数据保证存在至少一个完美定向

定义字符串 S=s1s2sn1S=s_1s_2\ldots s_{n-1} 的字典序小于 T=t1t2tn1T=t_1t_2\ldots t_{n-1} 若存在一个下标 kk 使得 s1=t1,s2=t2,,sk1=tk1s_1=t_1, s_2=t_2, \ldots, s_{k-1}=t_{k-1}sk<tks_k < t_k

输入格式

输入的第一行包含三个非负整数 c,n,mc,n,m,分别表示测试点编号,树的点数,顶点对的个数。其中 c=0c=0 表示该测试点为样例。

接下来 n1n-1 行,每行包含两个正整数 ui,viu_i,v_i 表示树的一条边。保证 1ui,vin1\leq u_i,v_i\leq n 且这 n1n-1 条边构成了一棵树。

接下来 mm 行,每行包含两个正整数 ai,bia_i,b_i。保证 1ai,bin1\leq a_i,b_i \leq naibia_i\neq b_i

输出格式

输出一行包含一个字符串 S=s1s2sn1S=s_1s_2\ldots s_{n-1},表示字典序最小的完美定向所对应的 0101 字符串。

0 4 2
1 2
2 3
3 4
3 2
1 4
001
0 6 8
5 1
2 3
1 2
5 6
4 3
4 3
5 1
6 3
5 4
1 4
5 2
3 6
6 2
10101
见 tree3.in/tree3.ans
这个样例满足测试点 1-3 的约束条件。

见 tree4.in/tree4.ans
这个样例满足测试点 4-6 的约束条件。

见 tree5.in/tree5.ans
这个样例满足测试点 7,8 的约束条件。

见 tree6.in/tree6.ans
这个样例满足测试点 9,10 的约束条件。

提示

【样例 1 解释】

在该样例中,若 S=000S=000,则该定向中 11 能到达 44(存在路径 12341\to 2\to 3\to 4),因而不是完美定向。若 S=001S=001,则该定向中 33 不能到达 2211 不能到达 44,因面是完美定向。故答案为 001001

【样例 2 解释】

在该样例中,一组完美定向必定满足 44 不能到达 3355 不能到达 11。故 s1=s5=1s_1=s_5=1。若 s2=s3=0s_2=s_3=0,则存在路径 12341\to 2\to 3\to 4,故 11 可到达 44。故其不是完美定向。因此,所有完美定向必定满足 SS 的字典序不小于 1010110101。且容易验证 S=10101S=10101 时,对应的定向是完美定向。

【数据范围】

对于所有测试数据保证 2n5×1052\leq n\leq 5\times 10^51m5×1051\leq m\leq 5\times 10^51ui,vin1\leq u_i,v_i\leq n 且所有的边构成了一棵树,1ai,bin1\leq a_i,b_i \leq naibia_i\neq b_i

数据保证存在至少一个完美定向。

测试点编号 nn mm 特殊性质
131\sim 3 15\leq 15 50\leq 50
464\sim 6 300\leq 300
7,87,8 400\leq 400 =(n1)(n2)=(n-1)(n-2) A
9,109,10 2000\leq 2\,000 B
111411\sim 14
15,1615,16 105\leq 10^5 B
17,1817,18
192119\sim 21 2×105\leq 2\times 10^5
222522\sim 25 5×105\leq 5\times 10^5
  • 特殊性质 A:保证 (a,b)(a,b) 出现在 (ai,bi)(a_i,b_i) 中当且仅当 aba\neq ba,ba,b 在树上不相邻。
  • 特殊性质 B:保证树上编号为 11 的顶点与其他每个顶点均相邻。