A93153.「NOI2022」冒泡排序
NOI/NOI+/CTSC
NOI
通过率:0%
时间限制:2.00s
内存限制:1024MB
题目描述
小 Z 所研究的序列均由非负整数构成。它的长度为 n,且必须满足 m 个附加条件。其中第 i 个条件为:下标在 [Li,Ri] 中的数,即 aLi,aLi+1,…,aRi 这些数,其最小值恰好为 Vi。
他知道冒泡排序时常会超时。所以,他想要知道,在所有满足附加条件的序列中,进行冒泡排序的交换次数的最少值是多少。
输入格式
从文件 bubble.in 中读入数据。
本题有多组数据。
输入的第一行包含一个正整数 T。
对于每组数据,第一行包含两个正整数 n,m。数据保证 1≤n,m≤106。
接下来 m 行,每行三个非负整数 Li,Ri,Vi,表示一组附加条件。数据保证 1≤Li≤Ri≤n、0≤Vi≤109。
输出格式
输出到文件 bubble.out 中。
输出共 T 行,每行一个整数。
对于每组数据,如果存在满足这 m 个附加条件的序列,则输出在所有满足附加条件的序列中,冒泡排序交换次数的最小值。如果不存在满足所有条件的序列,则输出 −1。
输入输出样例
输入#1
1 3 2 1 1 2022 2 3 39
输出#1
1
说明/提示
本题共 25 个测试点。全部测试点满足:1≤T≤1000,1≤∑n,∑m≤106,1≤Li≤Ri≤n,0≤Vi≤109。
其中 ∑n,∑m 分别表示所有测试点的 n 的总和和 m 的总和。∑n2,∑m2,∑n3,∑m3 的含义类似。
| 测试点 | 数据范围 | 特殊性质 |
|---|---|---|
| 1∼4 | n,m≤7,且最多 2 组数据不满足 n,m≤5 | |
| 5∼7 | n,m≤17,且最多 3 组数据不满足 n,m≤9 | A |
| 8∼10 | n,m≤100,∑n3,∑m3≤4×107 | A |
| 11∼12 | n,m≤2000,∑n2,∑m2≤4×107 | A |
| 13∼14 | n,m≤2000,∑n2,∑m2≤4×107 | B |
| 15∼16 | n,m≤2000,∑n2,∑m2≤4×107 | C |
| 17∼18 | n,m≤2000,∑n2,∑m2≤4×107 | |
| 19 | ∑n,∑m≤106 | A |
| 20 | ∑n,∑m≤106 | B |
| 21∼22 | ∑n,∑m≤106 | C |
| 23∼25 | ∑n,∑m≤106 |
特殊性质 A:对于 1≤i≤m,0≤Vi≤1。
特殊性质 B:对于 1≤i≤m,Li=Ri。
特殊性质 C:输入给出的 m 个区间 [Li,Ri] 两两不相交。
本题的部分测试点输入量较大。我们建议你使用较为快速的读入方式。