loj#P3655. 「2021 集训队互测」染色

「2021 集训队互测」染色

题目描述

你有一个 n n m m 列的网格,每个格子可以被染黑或染白,初始每个格子均为白色。定义第 i i 行的美观程度为最大的 x x ,满足对于所有 1jx 1 \le j \le x ,第 i i 行的第 j j 个格子的颜色是黑色。

你需要对这个网格执行 m m 次操作。操作有以下四种:

  1. 给定三个整数 l,r,x l, r, x ,表示把第 x x 列的第 l l 到第 r r 个格子染黑。
  2. 给定三个整数 l,r,x l, r, x ,表示把第 x x 列的第 l l 到第 r r 个格子染白。
  3. 给定三个整数 l,r,v l, r, v ,你需要把第 l l 到第 r r 行中美观程度最小的行的权值加上 v v ,如有多行均为最小则对每行都加 v v
  4. 给定两个整数 l,r l, r ,你需要输出第 l l 到第 r r 行的权值之和,对 264 2^{64} 取模。

每行初始权值为 0 0

输入格式

第一行包含两个整数 n,m n, m

接下来 m m 行,每行第一个正整数 opi op_i 表示操作编号。

对于 opi=1 op_i = 1 opi=2 op_i = 2 ,后面紧跟三个正整数 li,ri,xi l_i, r_i, x_i ,表示执行上述对应操作。

对于 opi=3 op_i = 3 ,后面紧跟三个整数 li,ri,vi l_i, r_i, v_i ,表示执行上述对应操作。

对于 opi=4 op_i = 4 ,后面紧跟两个整数 li,ri l_i, r_i ,表示询问这个区间的权值之和对 264 2^{64} 取模的值。

输出格式

若干行,对于每个 opi=4 op_i = 4 输出其答案。

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

数据范围与提示

对于 100%100\% 的数据,$ 1 \le n, m \le 3 \times 10^5,1 \le l_i \le r_i \le n, 1 \le x_i \le \min(m, 1.5\times10^5), 0 \le v_i < 2^{64} $。

本题采用子任务捆绑测试。

subtask1(10pts)\text{subtask1}(10 pts):保证 1n,m1000 1 \le n, m \le 1000

subtask2(15pts)\text{subtask2}(15 pts):保证 xi=1 x_i = 1

subtask3(15pts)\text{subtask3}(15 pts):保证 1xi10 1 \le x_i \le 10

subtask4(20pts)\text{subtask4}(20 pts):保证 opi=3 op_i = 3 opi=4 op_i = 4 的操作一定出现在所有 opi=1 op_i = 1 opi=2 op_i = 2 的操作之后。

subtask5(10pts)\text{subtask5}(10 pts):保证 1n,m40000 1 \le n, m \le 40000

subtask6(30pts)\text{subtask6}(30 pts):无特殊性质。