CF2003E2.Turtle and Inversions (Hard Version)

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

这是一个问题的困难版本。这个困难版本与简单版本在 mm 的限制条件上有所不同,而且在简单版本中,对于每一个 ii(从 11 到 m−1m-1),都有 ri<li+1r_i < l_{i+1} 的条件。只有当两个版本的问题都解决后,你才可以进行 hack。

有 mm 个区间 [l1,r1],[l2,r2],…,[lm,rm][l_1, r_1], [l_2, r_2], \ldots, [l_m, r_m],海龟认为一个排列 pp 是有趣的,如果对每个区间 li≤ki<ril_i \le k_i < r_i,存在一个整数 kik_i,并且对于每个 ii 从 11 到 mm,满足以下条件:

设 ai=max⁡j=likipja_i = \max\limits_{j = l_i}^{k_i} p_j,bi=min⁡j=ki+1ripjb_i = \min\limits_{j = k_i + 1}^{r_i} p_j,需满足:

max⁡i=1mai<min⁡i=1mbi\max\limits_{i = 1}^m a_i < \min\limits_{i = 1}^m b_i

海龟希望你找出长度为 nn 的所有可能的有趣排列中,逆序对数量的最大值。如果没有这样一个有趣的排列,则返回 −1-1。

排列 pp 中的逆序对是指满足 pi>pjp_i > p_j 的整数对 (i,j)(i, j),其中 1≤i<j≤n1 \le i < j \le n。

输入格式

输入数据包含多个测试用例。第一行给出测试用例数量 tt(1≤t≤1031 \le t \le 10^3)。接下来是每个测试用例的详细描述。

每个测试用例第一行包含两个整数 nn 和 mm(2≤n≤5⋅1032 \le n \le 5 \cdot 10^3, 0≤m≤5⋅1030 \le m \le 5 \cdot 10^3),分别表示排列的长度和区间的数量。

接下来的 mm 行每行两个整数 li,ril_i, r_i(1≤li<ri≤n1 \le l_i < r_i \le n),表示第 ii 个区间。需要注意的是,可能会有相同的区间(即存在不同的 i,ji, j 使得 li=ljl_i = l_j 且 ri=rjr_i = r_j)。

保证所有测试用例中 nn 的总和不超过 5⋅1035 \cdot 10^3,mm 的总和不超过 5⋅1035 \cdot 10^3。

输出格式

对于每个测试用例,如果不存在有趣的排列,输出单一整数 −1-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测评打分。不知道怎么写?

首页