![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 56
liuzhan214
业精于勤!
展开
-
hdu5033 Building单调栈
题意 一条直线上有很多房子,房子的信息包括位置和高度,给出一些询问,当有一个人站在某两个房子之间时,能看到的最大的角度(尽可能广阔的天空) 求解 可以很容易想到求解左边最大的仰角,右边最大的仰角,然后用180度减去两者,所以我们对查询排序,离线依次处理从左到右每个查询的向左看最大仰角,从右向左处理每个查询的向右看最大仰角,离线处理的目的是利用已经处理过的查询的信息,从而降低复杂度,首先,对于一原创 2016-09-23 13:55:20 · 434 阅读 · 0 评论 -
树状数组点更新,区间更新理解
对于一个数列A1A2A3…An,要求支持两种操作: 1.查询[x,y]区间的区间和 2.把[x,y]区间每个元素加val 事实上线段树也可以解决这样的问题,用上一点lazy的思想,每次只更新小区间的区间和,查询的时候加上祖先节点的影响就可以了。 我们用树状数组也可以解决这样的问题,并且效率会更高一些,复杂度都是nlog(n),但树状数组的常数更小,空间占用也更少。首先回忆一下树状数组维护前缀原创 2016-10-02 20:30:02 · 564 阅读 · 2 评论