#ABC240E. 树上的区间

树上的区间

树上的区间

题目描述

给定一棵有 NN 个顶点的有根树,根为顶点 11

对于每个 i=1,2,,N1i = 1, 2, \ldots, N-1,第 ii 条边连接顶点 uiu_i 和顶点 viv_i

对于每个 i=1,2,,Ni = 1, 2, \ldots, N,设 SiS_i 为以顶点 ii 为根的子树中所有顶点的集合。(每个顶点都在以自身为根的子树中,即 iSii \in S_i。)

另外,对于整数 llrr,记 [l,r][l, r] 为介于 llrr 之间的所有整数的集合,即 [l,r]={l,l+1,l+2,,r}[l, r] = \lbrace l, l+1, l+2, \ldots, r \rbrace

考虑一个由 NN 对整数组成的序列 $\big((L_1, R_1), (L_2, R_2), \ldots, (L_N, R_N)\big)$,满足以下条件。

  • 对所有满足 1iN1 \le i \le N 的整数 ii,有 1LiRi1 \le L_i \le R_i
  • 对任意一对整数 (i,j)(i, j)(1i,jN1 \le i, j \le N),以下成立:
    • SiSjS_i \subseteq S_j,则 [Li,Ri][Lj,Rj][L_i, R_i] \subseteq [L_j, R_j]
    • SiSj=S_i \cap S_j = \emptyset,则 [Li,Ri][Lj,Rj]=[L_i, R_i] \cap [L_j, R_j] = \emptyset

可以证明,至少存在一个满足条件的序列 $\big((L_1, R_1), (L_2, R_2), \ldots, (L_N, R_N)\big)$。在这些序列中,输出一个使所用最大整数 $\max \lbrace L_1, L_2, \ldots, L_N, R_1, R_2, \ldots, R_N \rbrace$ 最小的序列。

输入格式

输入按以下格式从标准输入给出:

N
u_1 v_1
u_2 v_2
⋮
u_{N-1} v_{N-1}

输出格式

按以下格式输出 NN 行。即,对于每个 i=1,2,,Ni = 1, 2, \ldots, N,第 ii 行应包含以空格分隔的 LiL_iRiR_i

L_1 R_1
L_2 R_2
⋮
L_N R_N

样例

3
2 1
3 1
1 2
2 2
1 1

$(L_1, R_1) = (1, 2), (L_2, R_2) = (2, 2), (L_3, R_3) = (1, 1)$ 满足条件。

确实有 $[L_2, R_2] \subseteq [L_1, R_1], [L_3, R_3] \subseteq [L_1, R_1]$,且 [L2,R2][L3,R3]=[L_2, R_2] \cap [L_3, R_3] = \emptyset

此外,$\max \lbrace L_1, L_2, L_3, R_1, R_2, R_3 \rbrace = 2$ 是最小可能值。

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

数据范围

  • 2N2×1052 \le N \le 2 \times 10^5
  • 1ui,viN1 \le u_i, v_i \le N
  • 输入中的所有值均为整数。
  • 给定的图是一棵树。

提示

答案不唯一,输出任意合法解即可。

难度 提高
通过率
尝试 0
已通过 0
ID
2396
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签