随笔分类 - 线段树
摘要:题目链接 树剖+线段树 将区间修改转化为单点修改,因为如果按DFS序进行修改,那么一定会对DFS序更大的点造成影响
阅读全文
摘要:题目链接 showson教我整体二分。。。 为什么我跑的时间是他的2倍呢?我sort了结构体。。。 二分权值(答案),把 询问和操作 按要求的权值分在左边或右边; 当二分的权值范围为1时,当前的所有询问 的答案都是这个二分出来的东西 判断往哪边放就用线段树区间修改区间查询,记得清空。。。
阅读全文
摘要:题目链接 恶心线段树 既然要翻转我就对0、1分别用一个information结构体存信息,翻转就直接swap 注意标记的优先次序。。。(坑 1 #include<algorithm> 2 #include<iostream> 3 #include<cstdlib> 4 #include<cstrin
阅读全文
摘要:题目链接双倍经验题同:bzoj3038只不过本题须开long long 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 #i...
阅读全文
摘要:题目链接线段树裸题,但是由于是开平方根,所以只能暴力单点修改但是,光这么做会T,当单点值为0或1是就不会变了。于是可以给区间打上标记,有标记就不递归下去修改了。AC#include#include#include#include#include#include#include#include#inc...
阅读全文
摘要:题目链接如果一栋楼房可见,那么它一定满足它的最高点到(0,0)的连线不与其他楼房相交。修改一个数只会对这个数后面的数造成影响。所以,需要修改、查询区间[1,n]比之前的任何一个数都大的数有多少个?转化一下就可以用线段树来维护了。修改的时候就分情况递归处理左侧即可。 1 #include 2 #inc...
阅读全文
摘要:题目链接一道比较裸的线段树左右端点是年份,维护是否有空点、最大值即可 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #inc...
阅读全文
摘要:题目链接 一道比较好写的树剖+线段树 只是查询的内容有点多而已 直接上代码 1 #include<iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 #include<string> 5 #include<cstring> 6 #include<cm
阅读全文
摘要:题目链接树上区间修改,用树链剖分+线段树只是这个题合并的时候不好有点坑,调了半天然后不知道为什么用现成的树剖求lca居然要T,改了倍增才过 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #incl...
阅读全文

浙公网安备 33010602011771号