题意:给出n根金属棒,和操作数q,初始时每个金属棒价值都为1,每次操作可以把从x到y的金属棒更换材质,铜为1,银为2,金为3,最后统计所有的金属棒总价值是多少。
线段树成段更新,需要用到lazy标记,所谓lazy标记就是:更新一个区间的时候不更新到底,只更新到第一个满足更新范围的区间(即范围内的最大的区间),然后给节点加上lazy标记,以后需要更新到该节点的子节点的时候,就把lazy标记...
分类:
其他好文 时间:
2015-05-21 01:23:04
阅读次数:
154
题目传送门 1 /* 2 线段树-成段更新:裸题,成段增减,区间求和 3 注意:开long long:) 4 */ 5 #include 6 #include 7 #include 8 #include 9 #include 10 using namesp...
分类:
其他好文 时间:
2015-05-16 10:26:40
阅读次数:
104
题目传送门 1 /* 2 线段树-成段更新:第一题!只要更新区间,输出总长度就行了 3 虽然是超级裸题,但是用自己的风格写出来,还是很开心的:) 4 */ 5 #include 6 #include 7 #include 8 #include 9 #incl...
分类:
其他好文 时间:
2015-05-15 21:12:52
阅读次数:
112
题目传送:A Simple Problem with Integers
思路:线段树,成段增减,区间求和,注意延迟标记需要累加,还有会爆int
AC代码:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#...
分类:
其他好文 时间:
2015-05-15 09:11:33
阅读次数:
106
题目传送:Just a Hook
思路:线段树,成段替换, 区间求和。成段更新时,注意延迟标记的作用,它就是用来暂停往下更新来达到节省时间的,然后每次更新每个节点的子节点之前都要判断是否需要往下更新。
AC代码:
#include
#include
#include
#include
#include
#include
#include
#include
#i...
分类:
其他好文 时间:
2015-05-14 22:02:43
阅读次数:
115
题意:给n张海报,按顺序贴海报,问最后能看到多少张不同的海报。解法:成段更新线段树 + 离散化。这道题因为给出的数字是单位长度,所以普通的离散化是有问题的,借鉴了大神的方法:http://notonlysuccess.me/?p=978一开始我的离散化方法是把单位长度改为数轴坐标……但是2 2 1....
分类:
其他好文 时间:
2015-05-14 14:03:50
阅读次数:
84
题意:一段钩子,每个钩子的值为1,有若干更新,每次跟新某段的值,若干查询某段的和基础题了 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #de...
分类:
其他好文 时间:
2015-04-20 18:23:27
阅读次数:
145
//简单的线段树,注意成段更新,以免超时
#include
#include
#include
using namespace std ;
const int maxn = 100010 ;
struct node
{
int value ;
int r , l;
int flag ;//记录到当前区间的状态
}tree[maxn
void buil...
分类:
其他好文 时间:
2015-04-07 21:49:12
阅读次数:
154
题意:一组数,两个操作,Q为查询l到r区间的和,C为更改l到r区间的值为原来的值加上c。解法:可以用线段树或树状数组。线段数成段更新,套模板改了改,万万没想到题目说int不会爆是骗我的………………线段树代码:#include#include#include#include#include#inclu...
分类:
其他好文 时间:
2015-04-05 20:28:23
阅读次数:
121