2051:线段选取
文件提交:无需freopen
内存限制:128 MB
时间限制:1.000 S
评测方式:普通裁判
命题人:
提交:3
解决:2
题目描述
蒜头君有一个长度为 $m$ 的数组 $a_1,a_2,...,a_m$。一开始,这个数组的每个元素都等于 $0$。之后,蒜头君需要从给定的 $n$ 条线段中选取一些(可以全选,也可以都不选)。
第 $i$ 条线段的左端点为 $l_i$,右端点为 $r_i$。选取一条线段之后,蒜头君会给 $a_{li},a_{li+1},...,a_{ri}$ 都加上 $1$
定义 $max(a)$ 为数组的最大值,$min(a)$ 为数组的最小值。
蒜头君的任务是最大化 $max(a)-min(a)$。请求出这个最大值。
输入
第一行一个正整数 $T$,表示数据组数。
对于每一组数据,第一行输入两个正整数 $m,n$,分别表示可以选取的线段数和数组长度。
接下来 $n$ 行,第 $i$ 条线段的左右端点。
$1\le T\le 10^3, 1\le n\le 10^5,1\le m\le 10^9, 1\le l_i,r_i\le m$, 单个测试点 $\sum{n}\le 10^5$
输出
对于每一组数据,输出一行一个整数,表示 $max(a)-min(a)$ 的最大值。
样例输入-1 复制
3
1 3
2 2
3 8
2 4
3 5
4 6
6 3
1 1
1 2
1 3
2 2
2 3
3 3
样例输出-1 复制
1
3
2
提示
样例解释1:
对于第一组数据,只有一条线段可以选。选完之后的数组为 $[0,1,0]$,所以答案就是 $1-0=1$
对于第二组数据,可以选择所有线段,之后数组变为 $[0,1,2,3,2,1,0,0]$,所以答案是 $3-0=3$
对于第三组数据,可以只选择前三条线段,之后数组变为 $[3,2,1]$,答案是 $3-1=2$