线段树
文章平均质量分 78
请_坚持思考
思考是你的拥有唯一的能力 请---坚持思考
展开
-
poj2528 线段数组 离散化
poj2528 线段数组 离散化#include #include #include using namespace std;#define lson l , m , rt << 1#define rson m + 1 , r , rt << 1 | 1const int maxn = 11111;bool hash[maxn];int li[maxn] , ri[maxn];原创 2016-10-25 22:30:55 · 650 阅读 · 0 评论 -
线段树总结 与 模板
线段树总结 与 模板单节点更新的 hdu1166 敌兵布阵 #include#include#include#includeusing namespace std;#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1const int maxn=100005;int sum[maxn<<2];void PushUp(in原创 2016-10-24 22:50:54 · 186 阅读 · 0 评论 -
线段树处理 poj2892 hdu1540
线段树处理 poj2892 hdu1540这道题想了很久 没有想出来思路 后面上网找了题解 利用区间左端点连续 和右端点连续 处理了区间的连续sum数组存储连续村庄个数,lsum存储区间内从左起连续个数,rsum存储区间内从右起连续个数#include #include #include #include using namespace std ;#define INF原创 2016-10-26 21:16:10 · 209 阅读 · 0 评论 -
hdu3974 线段树 编号的处理 dfs 加 lazy思想
hdu3974 线段树 编号的处理 dfs这道题想了大概一天 一直没想出来怎么对节点编号 后面百度了 看到dfs 瞬间开朗 利用dfs的时间戳 对节点编号 这样保证了 每个父节点的子节点 都在父节点所代表的区间内这里 用了以点保存区间的方式 开始的时候没有用lazy思想 直接用的setv[x]存储set的点 然后一直错后面想通了 如果我那样做的话 有可能之前set 的点原创 2016-10-29 13:27:31 · 227 阅读 · 0 评论 -
hdu4614 Vases and Flowers 二分
hdu4614 Vases and Flowers 二分这道题用数据结构为优化时间效率 用二分来分别找出左边界答案 和右边界答案 这是属于线段树数据结构与其他算法的结合使用 开始做的时候 还死死的在线段树上做文章。。。。问题是 在以A为起点的区间 第一个可以插花的 和最后一个可以插花的地方 按照正常思路的话可以想到二分 可是与线段树扯上了 就只能想到在线段树上处理 看来这种结合思想原创 2016-10-29 21:10:40 · 253 阅读 · 0 评论