AT_arc164_e [ARC164E] Segment-Tree Optimization
题目描述
有一个长度为 $N$ 的序列,$Q$ 次询问,每一次询问会覆盖到一个区间 $[L,R]$。
你需要构造一个二叉树,满足以下条件:
- 每个节点对应一个区间
- 根节点对应区间 $[1,N]$
- 叶子节点对应区间 $[i,i]$,同时对应区间 $[i,i]$ 的节点一定是叶子节点
- 每一个非叶子节点一定有两个子节点,如果一个非叶子节点对应 $[i,j]$,那么它的两个子节点对应区间分别为 $[i,k],[k+1,j](i \le k < j)$
对区间 $[L,R]$ 进行一次询问时,从根节点开始搜索,如果一个节点对应的区间被完全包含在 $[L,R]$ 中或该节点对应的区间与 $[L,R]$ 没有重叠,则不遍历其子节点,否则遍历其所有子节点。
记 $d$ 为遍历到的节点的最大深度,$c$ 为深度为 $d$ 的节点被遍历到的总次数,你需要在保证在 $d$ 最小的条件下 $c$ 最小,输出 $d$ 和 $c$。
translated by @[lelml](/user/372622)
输入格式
第一行两个整数 $N,Q$。
之后 $Q$ 行,每一行两个数 $L_i,R_i$,表示一次询问。
输出格式
一行两个数 $d,c$,表示答案。
说明/提示
$2 \le N \le 4000,1 \le Q \le 10^5,1 \le L_i \le R_i \le N(1\le i \le Q)$