堆
文章平均质量分 53
nlj1999
这个作者很懒,什么都没留下…
展开
-
2006: [NOI2010]超级钢琴
RMQ+Heap+区间分裂。对于任意区间右端点i,其左端点取值在l,r之间,若左端点为m,则v为max(sum[i]-sum[m-1]),显然这里i是不变的,所以可以用rmq查询m的位置,然后计算v。现将所有右端点扫一遍,然后扔到堆里面,堆中节点记录的是决策,即右端点i,左端点区间,优先级由v决定。然后取出堆顶,v加到ans里去,分裂[l,r]为[l,m-1]和[m+1,r],rmq出原创 2015-12-23 11:40:26 · 523 阅读 · 0 评论 -
1216: [HNOI2003]操作系统
又到了切水题的时间了。。。。。由于众所周知的坑爹规定,03年木有STL,于是就会有如此水的heap题。按照题目模拟一遍即可,因为比较懒,所以在最后加了个小玩意然后就代码就很短,900b整。#include#include#include#include#define inf 1LL<<62using namespace std;typedef long long ll;s原创 2016-01-05 20:01:14 · 556 阅读 · 0 评论 -
BZOJ 2328: [HNOI2011]赛车游戏
Hint里的没有数据是肿么回事,仿佛是在刻意地逗我笑首先这是个贪心题我们考虑首先让耗油量尽可能地低上坡段是必须耗油的,速度先置为0下坡段速度可以提升一下,达到耗油为0即可平底自然速度为0然后找到当前速度最小的路段,提升它的速度与次小的平齐,注意不要超过限制直到提升不了为止,最后结算一下如果发现最小和次小速度相等就把他们合并了#include#include#原创 2016-04-05 11:18:18 · 561 阅读 · 0 评论 -
BZOJ 4010: [HNOI2015]菜肴制作
枚举做法,然后发现这个就是倒序输出反图的字典序最大拓扑排序证明的话大概就是对于一个标号小的点,我们肯定需要大于它的标号尽可能都在他前面,它前面的越多,逆序之后它就越靠前#include#include#include#includeusing namespace std;const int N=100000+5;struct Edge{int to,next;}e[N];原创 2016-04-12 19:44:00 · 275 阅读 · 0 评论 -
BZOJ 1206: [HNOI2005]虚拟内存
模拟题#include#include#include#include#includeusing namespace std;mapmp;int sz;int id(int x){ if(!mp.count(x))mp[x]=++sz; return mp[x];}struct page{ int cnt,ti,id; bool operator < (const原创 2016-03-28 10:20:42 · 553 阅读 · 0 评论 -
APIO2014 UOJ 103-105
#103. 【APIO2014】Palindromes回文树裸题利用lazy思想延迟标记,最后所有标记倒序更新即可#include#include#includeusing namespace std;#define rep(i,l,r) for(int i=l;i<=r;i++)#define per(i,r,l) for(int i=r;i>=l;i--)typedef原创 2016-04-27 10:35:04 · 526 阅读 · 0 评论 -
APIO2015 UOJ 110-112
#110. 【APIO2015】Bali Sculptures很像NOI2014的起床困难综合征首先每一位拆开来做从高位到低位贪心,看每一位能不能为0NN#include#include#include#includeusing namespace std;const int inf=1e9;#define rep(i,l,r) for(int i=l;i<=r原创 2016-04-27 19:37:45 · 651 阅读 · 0 评论 -
BZOJ 4524: [Cqoi2016]伪光滑数
和D1的K远点对类似的k优解求法首先找到一个集合使得当前最优解一定在其中然后每次找到最优解并把与它有关且(必定)劣于它的加到集合里去重复k-1次对于这道题显然一开始的集合就是pi^j,pi为质数且pi然后每次扩展就是把一个数中的其中一个质因数变小一点当然还要hash判重(hash表好像写得有问题QAQ跑得巨慢无比)#include#include#include原创 2016-05-20 12:39:27 · 476 阅读 · 0 评论