题目名称 2651. 新史「新幻想史 -现代史-」
输入输出 cdcq_a.in/out
难度等级 ★★★
时间限制 2000 ms (2 s)
内存限制 256 MiB
测试数据 20
题目来源 Gravatarcdcq 于2017-04-07加入
开放分组 全部用户
提交状态
分类标签
CDQ分治
分享题解
通过:17, 提交:35, 通过率:48.57%
Gravatarfjzzq2002 100 1.033 s 8.35 MiB C++
Gravatarrewine 100 1.153 s 9.09 MiB C++
Gravatarzltttt 100 1.414 s 17.10 MiB C++
GravatarCandy? 100 1.417 s 17.86 MiB C++
Gravatarconfoo 100 2.136 s 11.74 MiB C++
GravatarAntiLeaf 100 2.346 s 2.69 MiB C++
GravatarIronk 100 2.683 s 10.14 MiB C++
GravatarIronk 100 2.707 s 10.14 MiB C++
Gravatarkiiiiii 100 2.739 s 3.15 MiB C++
Gravatar__stdcall 100 3.152 s 6.36 MiB C++
本题关联比赛
cdcqの省选膜你赛
关于 新史「新幻想史 -现代史-」 的近10条评论(全部评论)
出题人你的exCDQ是什么鬼,这题不是裸分治么……
GravatarAntiLeaf
2017-04-15 09:55 11楼
回复 @cdcq :
COGS太神辣...居然负难度还会掉rating(划掉)减分
GravatarAlbert S. Chang
2017-04-13 20:34 10楼
我太垃圾。跑的飞慢。
Gravatarconfoo
2017-04-13 16:34 9楼
回复 @FoolMike :
我去还能这么玩....
Gravatar沉迷学习的假的Keller
2017-04-12 20:34 8楼
回复 @FoolMike :
-2333333333333333
不知道cogs的难度还有这个功能
要不我改成233?
2333333333333333
Gravatarcdcq
2017-04-12 19:31 7楼
写这道题的同学注意,原题难度是-233,写了这道题之后你的积分会掉700左右,千万不要重评,我自己重评了两次掉了1400积分……
GravatarFoolMike
2017-04-12 18:34 6楼
回复 @_Itachi :
HA的
GravatarFoolMike
2017-04-12 12:39 5楼
大力线段树卡内存过去了,罪过罪过
Gravatarscpointer
2017-04-12 12:25 4楼
想知道出题人是哪个省的
Gravatar_Itachi
2017-04-12 08:40 3楼
幻想♂乡
Gravatarsxysxy
2017-04-07 17:52 2楼

2651. 新史「新幻想史 -现代史-」

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

题目解释:

所有整数都是正整数

新添一组大样例

题目最下面的咒语使用似乎会ce,请勿使用

已添加一句话题意

第i个时刻开始的时候会继承第i-1个时刻的状态

为了使题意更加容易理解,样例已更新

【题目描述】


慧音也想要退治妖怪!

在某次异变中,慧音要退治排成一列的n个妖怪,作为"吞食历史的半兽",慧音会使用符卡"新史「新幻想史 -现代史-」"修改过去的历史来让一段区间内的妖怪力量减少,同时因为历史被改变了,所以会有另一段区间的妖怪力量增强(一个妖怪的力量改变后,这个效果会一直持续到后面的时刻)。为了让修改历史的效果最稳定,慧音还想知道在过去的某个时刻一段区间中所有妖怪的妖力和是多少,每个时刻慧音只会发出一条指令。

战斗持续了m个时刻,由于慧音还要集中精力发射头槌弹幕,所以她请你来帮忙解决她的询问。

(没有进行任何操作的时刻为0时刻

关于时间线的说明:

如果有以下操作:询问1->修改->询问2,询问的目标时刻相等,修改的目标时刻小于等于询问的目标时刻,则询问1不会受到修改的影响,而询问2会

如果有以下操作:询问1->修改->询问2,询问的目标时刻相等,修改的目标时刻大于询问的目标时刻,则两个询问都不会受到修改的影响

特别提醒:

比赛进行中请尽量不要进行有关时间线或世界线的伦理思考

一句话题意:

有一个长度为n的整数序列,共m个时刻,在每个时刻都有一个操作,如果是询问操作则询问指定时刻一段区间的和,如果是修改操作则使修改指定时刻到当前时刻的所有时刻一段区间全部增加一个数,另一段区间全部减少一个数


【输入格式】


第一行两个整数n,m,意义如上

接下来一行n个整数,第i个整数ai表示第i个妖怪的妖力

接下来m行,第i行表示第i个时刻的指令,首先一个字符c,如果c为'Q',接下来三个用空格隔开的整数x,y,z,表示询问第z个时刻区间[x,y]中所有妖怪的妖力和,如果c为'M',接下来七个整数x,y,z,l,r,v,t,表示在第t个时刻,区间[x,y]中所有妖怪的妖力减少了z,区间[l,r]中所有妖怪妖力增加了v

输入数据中一行中的所有整数和字符用空格隔开


【输出格式】


对于每个M操作,输出一行一个值表示查询的结果


【样例输入1】


5 5

1 2 3 4 5

Q 1 3 0

M 1 2 1 2 3 2 1

Q 1 3 0

Q 1 3 1

Q 1 3 3


【样例输出1】


6

6

8

8


【样例输入2】


12 12

20755 32646 15599 16925 29509 29411 31544 19290 25477 30085 4973 21417

M 8 11 32373 4 7 2615 1

Q 7 7 0

M 8 10 32317 12 12 1710 3

M 4 5 28846 2 7 6548 4

Q 9 11 4

Q 12 12 4

Q 5 11 2

M 6 10 32331 6 7 1272 8

M 2 11 17117 4 9 19679 9

M 4 5 21667 4 5 13394 5

M 8 10 11508 9 11 30783 11

Q 8 9 6


【样例输出2】


31544

-101218

23127

48642

-84613


【样例解释】


第1个时刻,慧音询问第0个时刻[1,3]这个区间的妖力和,显然答案为6

第2个时刻,慧音使第1个时刻[1,2]的妖力减少1,[2,3]的妖力增加2

现在第1个时刻和第2个时刻的妖力序列都是0 3 5 4 5,而第0个时刻的妖力序列依旧是1 2 3 4 5

之后的两次询问就是在第0个时刻[1,3]的妖力和和第1个时刻[1,3]的妖力和,显然答案分别为6和8


【数据范围】



数据标号 n,m ai,v,z ex
1 <=50 <=10^5
2 <=500
3
4
5
6
7 <=5000 只有Q操作
8
9
10
11
12
13
14
15 <=50000 只有Q操作
16
17
18
19
20
对于所有数据,保证查询和修改的目标时刻在进行操作的时刻或进行操作的时刻之前;数据有梯度


【ex】