随笔分类 -  线段树&&树状数组

HDU 4578 线段树复杂题
摘要:题目大意:题意:有一个序列,有四种操作:1:区间[l,r]内的数全部加c。2:区间[l,r]内的数全部乘c。3:区间[l,r]内的数全部初始为c。4:询问区间[l,r]内所有数的P次方之和。这里p可以等于1,2,3三种情况,所以我们需要建立3个数组,当然这里其实只用一个sum[4*N][3]的2维数... 阅读全文
posted @ 2014-08-07 14:21 Love风吟 阅读(212) 评论(0) 推荐(0)
对于在线段树上修改整段区间的理解
摘要:第一题HDU1698http://acm.hdu.edu.cn/showproblem.php?pid=1698这是在区间上进行整段的修改操作,我们就用to[]数组代表修改的lazy标记记住在构建树和在change函数中自顶向下更新的时候,一定要注意重新回去更新上层的节点,所以末尾需加上update... 阅读全文
posted @ 2014-08-02 00:08 Love风吟 阅读(659) 评论(0) 推荐(0)
POJ 2352 star level
摘要:题目链接:http://poj.org/problem?id=2352题目大意:对于每一颗星星来说,都有一个属于自己的level,这个值为其他星星x,y坐标均不大于本星星的个数。输入时按先y由小到大,再x由小到大排列,无相同位置的星星仔细一想其实这道题目根本不需要用到y,我是反向来思考的,构建一个保... 阅读全文
posted @ 2014-07-31 13:14 Love风吟 阅读(348) 评论(0) 推荐(1)
HDU 3264 区间内的最大最小之差
摘要:题目链接:http://poj.org/problem?id=3264题目大意:在给定一堆牛的数量以及其高度的时候,每次给定一段区间,求这个区间内最高的牛和最矮的牛的高度之差为多少。可以直接利用RMQ求出区间最大最小相减即可,一道模板题- -。 1 #include 2 #include 3 #... 阅读全文
posted @ 2014-07-31 09:13 Love风吟 阅读(1190) 评论(1) 推荐(1)
HDU 4006
摘要:题目大意:给定一系列的数,并能够不断往里添加数使这个序列得到更新,问第k大的数是几这里可以用两种方法来做:1.运用优先队列将其由小到大保存,令队列里的数据始终只有k个,那么队首元素就是最小值2.运用堆排列,同样也只是在堆中存放k个元素,将最小值的位置放在堆顶,当超过k个的元素加入时,如果加入的数大于... 阅读全文
posted @ 2014-07-30 17:29 Love风吟 阅读(542) 评论(0) 推荐(1)
简单线段树中的一系列题目
摘要:1.HDU 1166 http://acm.hdu.edu.cn/showproblem.php?pid=1166题目大意:了解地方的兵营人数,每次询问告知区间内的总人数,其中会有兵营人数变更的更新操作这里要用到求和的query:int query(int x,int y){ int i=D+x-1... 阅读全文
posted @ 2014-07-30 14:35 Love风吟 阅读(233) 评论(0) 推荐(0)