线段树
acblacktea
永不放弃
展开
-
2016安徽省赛 - 木条染色 离散化+线段树
水模板题当时脑袋短路连想都没想啊!!! 补题的时候居然因为一个条件打错超时好几发,太弱太傻比了 离散化敲了很长时间还是要加油啊#include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define lson i<<1 #define rson (i<<1)+1 int maxn,t,n,m; int原创 2016-05-30 00:17:43 · 1879 阅读 · 1 评论 -
codeforces 675-E Trains and Statistic 线段树+dp
从后往前逆推。 当推到第i个点时候他会倾向于走到他能走到的几个点中的价值最大值的点,因为他要更快的走到最后一个点 所以dp[i] 是由 dp[pre(他能走到的点中的价值最大值的下标)] 推来的,然后要加上n-i因为加上了i这个点就相当于从i+1到n多了一条路径,然而有的是重复的 就是a[i]-pre这个区间从pre到a[i]长度分别为1,而从i到a[i]的长度也分别为1,所以长度并没有变化要减去原创 2016-05-26 02:43:05 · 553 阅读 · 0 评论 -
poj-2528-线段树离散化区间
离散化就是把区间压缩 1-10有十个数其实可以变成3个点起点终点和中间的一个点,1-2有两个数那就是两个点。 lazy思想简单题#include<cstdio> #include<algorithm> #include<cstring> #define lson i<<1,l,(r+l)/2 #define rson (i<<1)+1,(r+l)/2+1,r using namespace std原创 2016-04-09 13:15:36 · 476 阅读 · 0 评论 -
BestCoder 2nd Anniversary Jewelry 离散化加扫描线
问题在于怎么抽象出矩形面积。。。 求某个数数量恰好是time的子区间个数 当两个点c和d都是a1且两点之间的a1数量等于time时那左端点可以是c之前的且不是a1的那个点的任意一点,右端点可以是d之后的且不是a1的任何一点,那左端点可以移动的左右范围当做矩形长的左右端点的x值,右端点可以移动的左右范围当做矩形长的上下端点的y值这就是个矩形了。。。然后求总面积#include<cstdio> #i原创 2016-07-18 23:15:28 · 228 阅读 · 0 评论 -
poj 3225 线段树1,0互变 全变0全变1模板
区间更新 当这区间值相同时翻转记录清0因为此时值固定翻转无效了#include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #include<string> #include<queue> #define lson i<<1 #define rson (i<<1)+1 #define maxn 70000*2 us原创 2016-08-23 09:36:40 · 473 阅读 · 0 评论 -
poj 2887 Big String 块状链表
操作太少 所以分块然后直接线段树寻找块插入后面就行了//块状链表 #include<cstdio> #include<algorithm> #include<iostream> #include<cstring> #define lson i<<1 #define rson (i<<1) + 1 #define maxn 1055 using namespace std; struct BK {原创 2016-08-23 09:38:55 · 401 阅读 · 0 评论 -
383C - Propagating tree 线段树加时间戳
首先每次处理以一个点为根的所有子树点 就要用时间戳加线段树区间更新 因为每次add一个点,那么加减是交替的,所以线段树存储深度为奇数的点的add值 最后查询如果是偶数 ans = -ans;#include<cstdio> #include<algorithm> #include<iostream> #define maxn 200005 #define LL long long #define原创 2016-09-08 17:33:00 · 467 阅读 · 0 评论 -
codeforces 373div1 Sasha and Array 矩阵+线段树
用线段树储存价值和,因为矩阵 a1 * b + a2 * b + a3 * b + a4 * b + a5 * b = (a1 + a2 + a3 + a4 + a5) * b; 然后进行下优化,尽量减少快速幂的运算数量#include<cstdio> #include<algorithm> #include<iostream> #include<cstring> #define lson i<原创 2016-10-07 14:58:21 · 430 阅读 · 0 评论 -
hdoj 2665 主席树模版
原理:https://www.zhihu.com/question/31133885 教程:http://www.cnblogs.com/zyf0163/p/4749042.html 基本半天可以学会,不好的教程可能扣一天#include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include<cst原创 2017-04-09 21:57:56 · 426 阅读 · 0 评论