堆
Facico
生命是闪耀的此刻,不是过程,就像芳香不需要道路一样。
展开
-
【NOIP2016提高A组五校联考4】ksum
DescriptionSolution这题不是明显的堆来模拟吗,然后在hash判个重就好了。 但是,这题要值得反思的是,我以前的人工堆有一个很致命的错误,就是堆顶退堆的时候,应该把堆底和堆顶交换,然后num–之后再down一下,这然才对,错误的就不说了。 还有一个问题就是:我不会用STL来实现多元的堆,这个还要学习一下。Code#include<iostream> #include<cstdio原创 2016-10-10 14:27:44 · 544 阅读 · 0 评论 -
【NOIP2016提高A组五校联考1】排队
DescriptionSolution比赛的时候其实想到了正确的方法,但是以为这是错的,就没敢打。 首先可以用一个堆来维护空余的优先位置。 然后现在的问题就是,求一个点上面有多少个有值的点。 如果一个点对答案又贡献,那么它的子树的答案都要加1。那么维护dfs序的话,假设这棵子树的范围控制的是[x,y],那么就对x进行加1操作,y+1进行减1操作,然后如果要询问x的答案,那么直接在树状数组中的[原创 2016-10-04 21:30:01 · 773 阅读 · 2 评论 -
【NOI2017模拟4.4】保持平衡【优先队列,贪心】
Description博爱路上种起了一棵棵的大树,但是有一些地方的树超过了负荷,有一些地方的树的数量又不够。 我们不妨把博爱路看做一条数轴,数轴有n个点,从1到n编号,第i个位置原来现在有ai棵树,这个位置的需求是bi棵树。ai,bi都是0到10的整数。由于你需要是这个位置的树的数量保持平衡,所以你需要移除或者搬一些树过来。 我们怎么使树的数量平衡呢? 首先,你可以从某个位置i移动一棵树到位置原创 2017-04-07 09:20:47 · 885 阅读 · 0 评论