数据结构-线段树
文章平均质量分 80
iHge2k
专注数据结构和算法
展开
-
线段树专题训练
模块一: 线段树单点更新,区间最值。 http://acm.hdu.edu.cn/showproblem.php?pid=1166 线段树功能:update:单点更新,query:区间求和。 http://acm.hdu.edu.cn/showproblem.php?pid=1754 线段树功能:update:单点更新,query:区间最值。 PushUp(int rt) : 把当前原创 2014-05-26 18:10:05 · 453 阅读 · 0 评论 -
poj 3468(线段树+lazy思想)
题目链接:http://poj.org/problem?id=3468 思路:如果直接去做,每次都更新到叶子节点,那必然会TLE,我们可以采用lazy的思想:没必要每次更新都更新到叶子节点,只要有一个合适的范围就用一个增量来记录它,当下一次询问时,如果这个范围正好合适询问的范围,就直接是这个节点的sum值加上这个区间长度*lnc,再加到总和上去,若这个节点的范围不适合所要查询的范围,那么就要查询原创 2014-05-26 18:02:08 · 379 阅读 · 0 评论 -
hdu 1394
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394 思路:求最小的逆序数。。。可以暴力,也可以用线段树来做。。。下面是用线段树实现的代码: View Code 1 #include 2 const int MAXN=5007; 3 using namespace std; 4 int sum[MAXN2]; 5 in原创 2014-05-26 17:54:50 · 364 阅读 · 0 评论 -
hdu 1166(地兵布阵)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166 我的第一道线段树啊。。。好久以前就想看线段树了,但因为各种各样的原因就一直拖着没去看,今天就突然想看了,然后首选的当然是HH大神的博客了。。。orz,给跪了。。。 一开始,我不明白到底是怎么来建树的。。。debug了好久,终于恍然大悟了。。。一晚上,总算没有白忙乎啊!!! 然后输入的时原创 2014-05-26 17:54:46 · 373 阅读 · 0 评论 -
hdu 2795
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2795 思路:数组只要开min(h,n)大小就行了。。。线段树最后一层存的是每行的剩余量,然后父节点存当前子树中最大连续空余。 View Code 1 #include 2 const int MAXN=200007; 3 using namespace std; 4 int原创 2014-05-26 17:54:52 · 396 阅读 · 0 评论 -
hdu 1754
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754 刚学的线段树,只能是现学现卖了,orz... View Code 1 #include 2 #include 3 const int MAXN=200004; 4 using namespace std; 5 int MAX[MAXN2]; 6 7 voi原创 2014-05-26 17:54:48 · 332 阅读 · 0 评论