
线段树
Alberttttt
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
poj2828 线段树单点更新
题目链接:http://poj.org/problem?id=2828 题目意思:有N个人,一个一个的插到队伍中去,要你求最后的队伍。 解题思路:最后一个人想站在哪里就站在哪里,所以最后一个人的位置是固定。后面的根据前的可以确定位置。对于位置其实是前面已经有pos个人了,只是我们是逆排,所以是按空位排。排到空位子区间下标为pos的地方。 #include #include #define原创 2017-07-20 11:01:21 · 315 阅读 · 0 评论 -
hdu1556 线段树区间更新 求单点
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1556 还是没有完全理解延迟更新的意思,父节点每次都进行了更新所以sum每次只增加了len*v,而子节点是延迟更新,所以会有col[]的叠加sum增加len*col[] #include #include #define lson l,m,rt<<1 #define rson m+1,r,rt<<原创 2017-07-21 09:29:38 · 318 阅读 · 0 评论 -
poj3468 线段树区间更新,区间求和
题目链接:http://poj.org/problem?id=3468 #include #include #define LL long long int #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 using namespace std; const int maxn=2e5; LL sum[maxn<<2],col[原创 2017-07-20 20:35:50 · 287 阅读 · 0 评论 -
hdu2795
题目链接http://acm.split.hdu.edu.cn/showproblem.php?pid=2795 题意 :h*w 的木板 , 放进一些 1*L 的物品 , 求每次放 空间能容纳且最上边 的位子 思路 : 每次找到最大值的位子 , 然后减去 L 线段树功能 :query: 区间求最大值的位子 ( 直接把 update 的操作转载 2017-07-19 23:20:44 · 272 阅读 · 0 评论 -
hdu1394
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394 题目意思:输入一个n,给你从0到n-1数字不会重复的数列a0a1a2....an-1. 求: a0 a1 a2 ... an-1 a1 a2 a3... a0 a2 a3 a4... a1 an-1 a0 a1 ...an-2 这n串的最小逆序数原创 2017-07-19 22:14:22 · 315 阅读 · 0 评论 -
hdu 1540 单点更新 求包括该点的最大连续值
题目链接:传送门 D,和R就是单点更新的。主要考虑Q怎么写,既然是包括该点,肯定是以它为中心的,然后向上回溯,找他的左右是不是和他连续的。 对于一个点,看它是在当前区间的左半还是右半 在左半的话,看看是不是在右端的连续区间内,是的话,还要加上右半区间的左端连续区间。否则的话,只要计算它在左半区间的连接情况即可 在右半的话同理,看看是不是在左端的连续区间内,是的话,还要加上左原创 2017-07-26 16:58:34 · 318 阅读 · 0 评论 -
hdu1754
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754 线段树单点更新区间求最大值,把原来的区间求和改为求子节点的最大值就可以了。 #include #include #include #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 using namespace std; const int原创 2017-07-19 22:09:26 · 577 阅读 · 0 评论 -
Poj 3667 线段树区间合并 (模板)
题目链接:http://poj.org/problem?id=3667 别人的分析:http://www.cnblogs.com/scau20110726/archive/2013/05/07/3065418.html #include #include #include #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 using nam原创 2017-07-22 12:55:21 · 290 阅读 · 0 评论 -
hdu1698 线段树成段更新
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698 成段更新 (通常这对初学者来说是一道坎 ),需要用到延迟标记 (或者说懒惰标记 ),简单来说 就是每次更新的时候不要更新到底 ,用延迟标记使得更新延迟到下次需要更新 or 询问到的 时候 #include #include #define lson l,m,rt<<1 #de转载 2017-07-20 15:52:50 · 255 阅读 · 0 评论 -
hdu1166单点更新,区间求和
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166 线段树单点更新的题目 看的大佬的写的。。。。 #include #include #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 using namespace std; const int maxn=55555; int sum[m转载 2017-07-19 22:05:19 · 293 阅读 · 0 评论