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