小
给出一个长度为
1.对于所有的
2.对于所有的
3.对于所有的
4.对于所有的
保证
作为一个数竞选手,小
这里给出了他的详细做法,大概和 UOJ#228. 基础数据结构练习题 的做法差不多?
线段树是一种二叉树,它的每个节点都代表着一个区间,大约长这样:
在每个节点上维护该区间的最小值,最大值和区间和。由于这个题(就是你在看的这个题)并不会询问这些值具体是多少,你可以认为它们和当前数列保持一致。反正是可以正确维护的就对了么
每个节点上会有一个标记二元组
显然,这里的标记是可加的,标记
当下传一个节点的标记时,先将该节点的标记分别加到左右孩子的标记上,然后再将该节点的标记赋值为
要在节点
区间赋值是类似的,只不过加上的标记是
要在节点
显然,这样做的时间复杂度是均摊
小
请写一个程序,要求维护一棵用于维护数列
1.在节点
2.在节点
3.在节点
4.询问节点
输入格式
第一行一个整数
第二行两个整数
接下来一行
接下来一行包含
接下来的
若
若
若
若
输出格式
对于每个操作
样例一
input
0
6 7
1 1 1 1 1 1
5 1 3 2 4
2 2 5 2
4 2 5
1 2 4 1
4 2 5
4 2 3
4 4 4
4 5 5
output
0 2
1 0
0 3
0 3
0 2
限制与约定
共
测试点编号 | 操作 | 操作 | 操作 | 操作 | 特性 | 特性 | |
---|---|---|---|---|---|---|---|
1 | √ | √ | √ | √ | 划分线段树时有 | ||
2 | √ | √ | √ | √ | 原线段树树高不超过 | ||
3 | √ | √ | √ | ||||
4 | √ | √ | √ | √ | |||
5 | √ | √ | √ | √ | |||
6 | √ | √ | √ | √ | √ | ||
7 | √ | √ | √ | √ | √ | √ | |
8 | √ | √ | √ | ||||
9 | √ | √ | √ | ||||
10 | √ | √ | √ | √ | |||
11 | √ | √ | √ | ||||
12 | √ | √ | √ | √ | √ | ||
13 | √ | √ | √ | ||||
14 | √ | √ | √ | ||||
15 | √ | √ | √ | √ | |||
16 | √ | √ | √ | √ | √ | ||
17 | √ | √ | |||||
18 | √ | √ | |||||
19 | √ | √ | √ | ||||
20 | √ | √ |
看!每个点都有特殊性质。
特性
特性
对于所有测试点,有:
操作
操作
部分分
显然,某个测试点错在第 没有testlib真自闭
没有输出时正确率当然为 1 啦!
什么,你说这是IOI赛制?我不听我不听,我要做良心出题人!
乱搞碾标算,N方过百万!
时间限制:
空间限制: