题目名称 3917. 数列操作
输入输出 hihocoderD.in/out
难度等级 ★★★★
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatarsywgz 于2023-10-07加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:1, 提交:53, 通过率:1.89%
Gravatarzxhhh 100 5.483 s 11.48 MiB C++
Gravatar┭┮﹏┭┮ 10 1.816 s 22.25 MiB C++
Gravatarzxhhh 10 3.739 s 11.09 MiB C++
Gravatarzxhhh 10 4.364 s 11.47 MiB C++
Gravatarzxhhh 10 5.172 s 11.09 MiB C++
Gravatarzxhhh 10 5.218 s 11.09 MiB C++
Gravatarzxhhh 10 5.241 s 11.48 MiB C++
Gravatarzxhhh 10 5.242 s 16.44 MiB C++
Gravatarzxhhh 10 5.247 s 11.48 MiB C++
Gravatarzxhhh 10 5.257 s 11.47 MiB C++
本题关联比赛
20231007练习
关于 数列操作 的近10条评论(全部评论)
Gravatarzxhhh
2023-10-12 18:51 1楼

3917. 数列操作

★★★★   输入文件:hihocoderD.in   输出文件:hihocoderD.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】


给定一个长度为n的序列A,你还有一个长度为n的数组B,最开始B的所有值都是0,接下来有m次操作,操作有四种:

1.给定l,r,x,把区间[l,r]中的所有数变成max(A_i,x)

2.给定l,r,x,把区间[l,r]中的所有数变成min(A_i,x)

3.给定l,r,x,把区间[l,r]中的数都加上x。

4.给定l,r,询问B数组的区间和。

在每次操作后,对于每一个i,如果A_i发生了变化(即权值和修改前不同),那么就把B_i加上一,否则B_i的值不变。


【输入格式】

第一行两个整数n,m。接下来一行n个整数表示数组A。

接下来m行,每行第一个1到4的整数表示操作种类,如果是前三类,接下来是三个整数l,r,x,否则接下来两个整数l,r。

【输出格式】

对于每个第四种操作,输出一行表示答案

【样例输入】

3 4
1 2 3
1 1 3 3
4 1 3
2 1 3 -1
4 1 3

【样例输出】

2
5

【样例说明】

在此键入。

【数据规模与约定】

n,m<=100000 操作1,2中x以及A_i的绝对值不超过10^9,操作3中x的绝对值不超过10^4

【来源】

在此键入。