CSPSMK13C. 排列计数(perm)

提交1 通过1
通过率100%
文件IO启用
输入文件perm.in
输出文件perm.out
时间限制2000ms
内存限制512MiB
    ID: 14625 传统题 文件IO 输入文件:perm.in 输出文件:perm.out 2000ms 512MiB 尝试: 1 已通过: 1 难度: 提高+/省选- 上传者: 标签>并查集分治线段树

题目描述

题目描述

给你 nn 个区间 Ii=[li,ri]I_i = [l_i,r_i](1≤li≤ri≤n1 \le l_i \le r_i \le n)。定义 f(I1,I2,⋯ ,In)f(I_1,I_2,\cdots,I_n) 为,有多少个 {1,2,⋯ ,n}\{1,2,\cdots,n\} 的排列 pp 满足 ∀1≤i≤n,li≤pi≤ri\forall 1 \le i \le n,l_i \le p_i \le r_i,对 2\Large \color{red} 2 取模。

给定初始的 I1,2,⋯ ,nI_{1,2,\cdots,n}。接下来有 qq 次操作,每次给定三个参数 (x,y,z)(x,y,z),将第 xx 个区间 IxI_{x} 改成 [y,z][y,z],问 f(I1,⋯ ,In)f(I_1,\cdots,I_n) 的值。注意,操作的影响是持久的,也就是这次修改会被保留到后续操作。

输入格式

第一行两个正整数 nn,qq。

接下来 nn 行,每行两个整数 li,ril_i,r_i,表示初始的区间。

接下来 qq 行,每行三个正整数 x,y,zx,y,z,表示一次修改。

输出格式

共 qq 行,每行一个整数,表示第 ii 次修改之后 f(I1,I2,⋯ ,In)f(I_1,I_2,\cdots,I_n) 的值。

输入样例 #1

3 3
1 1
2 3
3 3
2 1 1
3 1 3
1 2 2

输出样例 #1

0
0
1

输入样例 #2

5 4
1 1
1 5
3 5
4 4
2 3
3 1 5
4 3 3
3 5 5
2 2 2

输出样例 #2

0
0
1
0

说明提示

对于所有的数据,1≤n,q≤2×1051 \le n,q \le 2 \times 10^5,1≤li≤ri≤n1 \le l_i \le r_i \le n,1≤y≤z≤n1 \le y \le z \le n。

测试点编号 n≤n \le q≤q \le 特殊性质
1,21,2 88 100100 无
3∼53 \sim 5 1515
6∼86 \sim 8 100100
9,109,10 2×1052 \times 10^5 li=ril_i=r_i,y=zy=z
11,1211,12 li=1l_i = 1,y=1y = 1
13∼1613 \sim 16 10001000 无
17∼2017 \sim 20 2×1052 \times 10^5

本站补充:原套别:第 13 套 C 题。