RMQ
线段树
dreambyday
我大抵是病了,
横竖都写不出一行代码。
站起身来点起了一支烟,
这悲伤没有由来。
默默然跑到楼下买了根82年老冰棍,
一口是我吃的,
另一口也是我吃的,
大抵又是到了摸鱼的时刻了吧。
展开
-
HDU2795线段树
在学校的入口处有一个巨大的矩形广告牌,高为h,宽为w。所有种类的广告都可以贴,比如ACM的广告啊,还有餐厅新出了哪些好吃的,等等。。在9月1号这天,广告牌是空的,之后广告会被一条一条的依次贴上去。每张广告都是高度为1宽度为wi的细长的矩形纸条。贴广告的人总是会优先选择最上面的位置来帖,而且在所有最上面的可能位置中,他会选择最左面的位置,而且不能把已经贴好的广告盖住。如果没有合适的位置了,那么这张广告原创 2017-03-17 20:38:18 · 312 阅读 · 0 评论 -
2017 计蒜之道 初赛 第六场 微软大楼设计方案(中等)
网址:https://nanti.jisuanke.com/t/15773 近日,微软新大楼的设计方案正在广泛征集中,其中一种方案格外引人注目。在这个方案中,大楼由 nn 栋楼组成,这些楼从左至右连成一排,编号依次为 11 到 nn,其中第 ii 栋楼有 h_ih i 层。每栋楼的每一层为一个独立的 办公区域,可以步行 直达同层相邻楼栋的办公区域,以及 直达同楼栋相邻楼层的办公区域。原创 2017-06-04 21:42:57 · 510 阅读 · 0 评论 -
HDU3397区间合并 延迟标记
代码太长了,改了好久还是WA,样例过了。。。改的太难受了,不改了,先存起来等心情好再重写一遍吧 下面是错误代码#include<iostream>#include<algorithm>using namespace std;#define mid ((l+r)/2)#define lson l,mid,rt<<1#define rson mid+1,r,rt<<1|1#define l原创 2017-04-06 20:30:14 · 214 阅读 · 0 评论 -
HDU3308区间合并+单点更新
网址:http://acm.hdu.edu.cn/showproblem.php?pid=3308 不知为何此题一直WA自认为写的没有错误呀,先保存一下以后改正#include<iostream>#include<cmath>#include<string>#include<algorithm>#include<vector>#include<stdio.h>#include<map>原创 2017-04-02 19:24:08 · 401 阅读 · 0 评论 -
HDU4027线段树
此题有坑原创 2017-03-31 17:27:13 · 326 阅读 · 0 评论 -
POJ3264线段树基础
http://poj.org/problem?id=3264 给出一段区间,求区间最大最小值差#include<iostream>#include<cmath>#include<string>#include<algorithm>#include<vector>#include<stdio.h>#include<map>#include<queue>#include<climits原创 2017-03-30 21:03:52 · 215 阅读 · 0 评论 -
POJ3667Hotel 区间合并+延迟标记
原文http://poj.org/problem?id=3667 The cows are journeying north to Thunder Bay in Canada to gain cultural enrichment and enjoy a vacation on the sunny shores of Lake Superior. Bessie, ever the competen原创 2017-03-30 20:47:31 · 379 阅读 · 0 评论 -
POJ2828buy tickets线段树
网址:http://poj.org/problem?id=2828 感觉这道题真的好巧妙。 题意: 给一个数n,输入n个人 想插入的位置 和 自身的价值 最后一个人想插入的位置就是最后的位置,所以从后向前考虑。 这时,我们发现,这个人想插入的位置就是其前面空的数量。 例如 0 20523 1 19243 1 3890 0 31492 从后向前,四号人物放原创 2017-03-29 22:29:50 · 313 阅读 · 0 评论 -
线段树基础单点更新,区间查找HDU1166,POJ3264,DUT1094等差区间,HDU1754
DUT 1094等差区间 http://dutacm.club:7217/codesheaven/problem.php?id=1094 不涉及更新,但涉及到了数学思想。 1.首先,节点的信息记录区间和,区间平方和,区间最小值 2.通过线段树查找后,假设这段区间为等差区间,根据得到的以上三个信息能够求出等差值d 3.sum=(a1+an)*n/2;求出d 4.根据d,区间长度和最小值原创 2017-03-10 21:07:21 · 235 阅读 · 0 评论 -
DUT1004Zeratul的完美区间
学习了sparse table的算法,用这个来练练手。 sparse table是一种动态规划的思想 给出算法过程: 1.给出数组a1,a2,a3,,,,,,,,an 2.设dp[i][j]为第i个数到第i+2^j-1个数中的最值(一共2^j个数) 3.dp[i][0]为第i个数的值 4.有状态转移方程(假设求最大值)dp[i][j]=max(dp[i][j-1],dp[i+2^(j-1原创 2017-03-08 17:28:14 · 309 阅读 · 0 评论 -
区间更新POJ3468 HDU1698
网址https://vjudge.net/problem/POJ-3468 最近学了线段树,搞了一下区间更新。模板题吧。 写一下自己需要记住的点吧。 1.空间要为节点数的4倍,我在网上找了一下,大概意思是这样 建树后可能出现这种情况(图片来自网络,侵删) 结果在最下面的一行原本没完全使用却占用了空间,占用的是比这个图刚刚大的完美二叉树空间。 计算一下此图空间:((n-1)*2-1+1)*原创 2017-03-04 15:46:10 · 414 阅读 · 0 评论