#LX0017. 线段树
线段树
题目描述
小明有一棵线段树。
啥是线段树呢?你可以想象成,一开始,你有一个区间,然后,你可以取中点,把它划分成两个区间。(之前那个区间也还在的哦)
然后,你可以继续划分下去,直到把每一个区间都划分成长度为为止,下图就是一棵线段树,维护了区间的信息。
假设线段树上,每个节点都存储了它表示的区间内所有元素的信息(比如区间的和)。
那么,当我想知道一个区间的信息的时候,我一定可以在线段树上找到一些区间,这些区间互相没有交集,且并起来刚好是区间。
比如,我在上图的线段树中,要查询的信息,那么我找到两个区间,就可以表示区间的信息了。(把替代成显然也是合法的策略,但是这样选择的区间更多了,不够优秀)。
我们称,对于一次查询,我们需要用到的区间个数为,比如上图中。
我们的问题是:给定线段树根节点所表示的区间范围是,以及有次查询,第次查询是,假设你可以在最初时候自由的选择区间分割的位置,最小是多少?
输入格式
第一行输入。
接下来行,每行两个数字。
输出格式
一个数字表示答案。
样例输入 #1
4 2
1 3
4 4
样例输出 #1
2
样例解释 #1
对于我们来说,我们可以在第一层分割时候,把区间分割成,这样两个查询都只需要一次操作。
样例输入 #2
5 3
1 3
3 5
2 4
样例输出 #2
5
样例解释 #2
我们在第一层把区间分割成,然后把分割成,分割成,分割成。
这样,对于的查询,我们需要用到两个区间。
对于的查询,我们需要用到一个区间。
对于的查询,我们需要用到两个区间。
样例输入 #3
10 8
1 5
2 6
2 4
2 8
2 9
3 5
3 6
1 10
样例输出 #3
11
数据范围
对于30%的数据:保证。
对于50%的数据:保证。
对于70%的数据:保证。
对于100%的数据:保证$1\leq n \leq 500,1\leq q\leq 10^5,1\leq l_i\leq r_i\leq n$。
相关
在下列比赛中: