E1. 乌龟与逆序对(简单版)
每测试点时间限制:2 秒
内存限制:512 兆字节
这是本题的简单版本。两个版本的区别在于对 m 的约束以及简单版本中对于每个 i 从 1 到 m−1 满足 ri<li+1。只有同时解决了两个版本,你才能进行 Hack。
乌龟给了你 m 个区间 [l1,r1],[l2,r2],…,[lm,rm]。
他认为一个排列 p 是有趣的,当且仅当:
对于每个区间 i 存在一个整数 ki(满足 li≤ki<ri),并且令
$$a_i = \max_{j = l_i}^{k_i} p_j, \quad b_i = \min_{j = k_i+1}^{r_i} p_j
$$
对于每个 i=1,2,…,m,下面的条件成立:
i=1maxmai<i=1minmbi
乌龟希望你在所有长度为 n 的有趣排列中,计算逆序对的最大个数,如果不存在有趣的排列,则输出 −1。
逆序对的定义:在排列 p 中,一对 (i,j)(1≤i<j≤n)满足 pi>pj 称为一个逆序对。
输入格式
每个测试点包含多个测试用例。第一行包含整数 t(1≤t≤103),表示测试用例的数量。
每个测试用例的第一行包含两个整数 n,m(2≤n≤5⋅103,0≤m≤n2),分别表示排列长度和区间个数。
接下来 m 行,第 i 行包含两个整数 li,ri(1≤li<ri≤n),表示第 i 个区间。
简单版中的额外限制:对于每个 i 从 1 到 m−1,满足 ri<li+1。
所有测试用例的 n 之和不超过 5⋅103。
输出格式
对于每个测试用例,如果没有有趣的排列,输出一行一个整数 −1。
否则输出一行一个整数,表示最大的逆序对数。
样例输入
6
2 0
2 1
1 2
5 1
2 4
8 2
1 4
6 8
7 2
1 3
4 7
7 3
1 2
3 4
5 6
样例输出
1
0
8
21
15
15
样例解释
第三个测试用例中,逆序对数最大的有趣排列是 [5,2,4,3,1]。
第四个测试用例中,逆序对数最大的有趣排列是 [4,8,7,6,3,2,1,5]。此时我们可以取 [k1,k2]=[1,7]。
第五个测试用例中,逆序对数最大的有趣排列是 [4,7,6,3,2,1,5]。
第六个测试用例中,逆序对数最大的有趣排列是 [4,7,3,6,2,5,1]。