#P16698. [CSPro 29] 施肥

    ID: 18751 远端评测题 2000ms 512MiB 尝试: 0 已通过: 0 难度: 9 上传者: 标签>2023吉司机线段树 segment tree beatsCSPro

[CSPro 29] 施肥

背景

洛谷的测试数据仅供民间交流使用,非官方测试数据。官方评测链接:https://www.cspro.org/

题目描述

春天到了,西西艾弗岛上的 nn 块田地需要施肥了。nn 块田地编号为 1,2,,n1, 2, \cdots, n,按照编号从小到大的顺序排成一列。

为了给田地施肥,顿顿准备了 mm 辆施肥车。但是由于土地的松软程度不同,施肥车的质量不一,不一定每一辆施肥车都能给每一块田地施肥。其中,第 ii 辆施肥车只能恰好从第 lil_i 块田地开到第 rir_i 块田地,并给编号在 lil_irir_i 之间的田地(包含 lil_irir_i)都施一遍肥。其中 1li<rin1 \le l_i < r_i \le n

顿顿希望制定一个施肥的计划。首先,他将选定二元组 (L,R)(L, R) (1L<Rn1 \le L < R \le n),并选择只给编号在 L,RL, R 之间(包含 L,RL, R)的田地施肥。接着,他会从使用这 mm 辆施肥车中的一部分(或全部)对田地施肥。他想要保证:编号在 LLRR 之内的田地至少被某一辆施肥车施了一次肥,且编号范围外的田地都没有被施过肥。

现在,他想知道,他能够选择多少种不同的二元组 (L,R)(L, R) 作为施肥范围,使得可以选出一部分(或全部)施肥车,完成他的目标。

输入格式

从标准输入读入数据。

第一行输入两个正整数 n,mn, m,表示田地的块数和施肥车的辆数。数据保证 2n21052 \le n \le 2 \cdot 10^5, 1m21051 \le m \le 2 \cdot 10^5

接下来 mm 行,第 ii 行输入两个正整数 li,ril_i, r_i,表示第 ii 辆施肥车的施肥范围从第 lil_i 块田地到第 rir_i 块田地。数据保证 1li<rin1 \le l_i < r_i \le n

输出格式

输出到标准输出。

输出一个正整数,表示顿顿能够选择多少种不同的二元组 (L,R)(L, R) 作为施肥范围,使得他可以选出一部分(或全部)施肥车,完成他的目标。

4 3
1 2
3 4
2 3
6

提示

样例 1 解释

在这组样例中,顿顿可以选择 66 种不同的二元组 (L,R)(L, R)

第一种:选择 (L,R)=(1,2)(L, R) = (1, 2),并只选取第 11 个施肥车施肥。

第二种:选择 (L,R)=(3,4)(L, R) = (3, 4),并只选取第 22 个施肥车施肥。

第三种:选择 (L,R)=(2,3)(L, R) = (2, 3),并只选取第 33 个施肥车施肥。

第四种:选择 (L,R)=(1,4)(L, R) = (1, 4),并选取第 11 个和第 22 个施肥车施肥。

第五种:选择 (L,R)=(1,3)(L, R) = (1, 3),并选取第 11 个和第 33 个施肥车施肥。

第六种:选择 (L,R)=(2,4)(L, R) = (2, 4),并选取第 22 个和第 33 个施肥车施肥。

样例 2

见题目目录下的 2.in2.ans

这个样例满足 n,m18n, m \le 18

样例 3

见题目目录下的 3.in3.ans

这个样例满足 n,m50n, m \le 50

样例 4

见题目目录下的 4.in4.ans

这个样例满足 n,m400n, m \le 400

样例 5

见题目目录下的 5.in5.ans

这个样例满足 n,m3000n, m \le 3000

样例 6

见题目目录下的 6.in6.ans

这个样例满足特殊性质 A。

样例 7

见题目目录下的 7.in7.ans

这个样例满足 n,m200000n, m \le 200000

子任务

测试点编号 nn \le mm \le 特殊性质
11 1818
22 ^ ^
33
44 5050
55 ^
66 400400
77 ^
88 30003000
99 ^
1010
1111
1212
1313 200000200000 A
1414 ^ ^
1515
1616
1717 ^
1818
1919
2020

特殊性质 A:保证任意两个施肥车的施肥范围不存在相互包含的关系,也就是说,对任意 1i<jm1 \le i < j \le mli<lj,ri<rjl_i < l_j, r_i < r_jli>lj,ri>rjl_i > l_j, r_i > r_j