CF2003E2.Turtle and Inversions (Hard Version)
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是一个问题的困难版本。这个困难版本与简单版本在 m 的限制条件上有所不同,而且在简单版本中,对于每一个 i(从 1 到 m−1),都有 ri<li+1 的条件。只有当两个版本的问题都解决后,你才可以进行 hack。
有 m 个区间 [l1,r1],[l2,r2],…,[lm,rm],海龟认为一个排列 p 是有趣的,如果对每个区间 li≤ki<ri,存在一个整数 ki,并且对于每个 i 从 1 到 m,满足以下条件:
设 ai=j=limaxkipj,bi=j=ki+1minripj,需满足:
i=1maxmai<i=1minmbi
海龟希望你找出长度为 n 的所有可能的有趣排列中,逆序对数量的最大值。如果没有这样一个有趣的排列,则返回 −1。
排列 p 中的逆序对是指满足 pi>pj 的整数对 (i,j),其中 1≤i<j≤n。
输入格式
输入数据包含多个测试用例。第一行给出测试用例数量 t(1≤t≤103)。接下来是每个测试用例的详细描述。
每个测试用例第一行包含两个整数 n 和 m(2≤n≤5⋅103, 0≤m≤5⋅103),分别表示排列的长度和区间的数量。
接下来的 m 行每行两个整数 li,ri(1≤li<ri≤n),表示第 i 个区间。需要注意的是,可能会有相同的区间(即存在不同的 i,j 使得 li=lj 且 ri=rj)。
保证所有测试用例中 n 的总和不超过 5⋅103,m 的总和不超过 5⋅103。
输出格式
对于每个测试用例,如果不存在有趣的排列,输出单一整数 −1;否则,输出最大可能逆序对的数量。
本翻译由 AI 自动生成
输入输出样例
输入#1
8 2 0 2 1 1 2 5 1 2 4 8 3 1 4 2 5 7 8 7 2 1 4 4 7 7 3 1 2 1 7 3 7 7 4 1 3 4 7 1 3 4 7 7 3 1 2 3 4 5 6
输出#1
1 0 8 18 -1 -1 15 15
输入解题思路,AI测评打分。不知道怎么写?