
单调
gigo_64
莫看,莫看,这不是真实的我(七海脸)
溜了溜了
展开
-
[HNOI/AHOI2018]转盘【线段树】【单调栈】
传送门一旦我走到的点已经出现,我就打标记。问最小时间。我们发现,如果要靠走两圈或者更多圈来得到的点,和一开始在起点等很久再出发得到的答案是等价的。比如说走了很多圈经过点数分别为1,8,19,23,555完全可以变成551,552,553,554,555所以问题转化成了只走一圈。首先拆掉环复制一遍变成一条链。我们需要枚举起点,得到答案的式子是这样的即通过每一个点的...原创 2019-11-04 14:30:14 · 224 阅读 · 0 评论 -
【洛谷4198】楼房重建【线段树】【单调】
传送门~单点修改,维护从左看到的斜率升序序列长度。每个楼房的高度除以距离得到斜率。所以看出这道题需要动态维护一个单调上升序列。考虑区间合并。记录区间答案长度以及区间最大值。很明显左区间仍然可以被看到。而右区间不一定。右区间能别看到的,只有右区间合法答案中,比左区间最大值还大的部分。考虑在右区间上二分。因为右区间维护的也是一个单调栈,所以可以二分。如果到叶子节点,判断...原创 2019-11-04 11:19:43 · 190 阅读 · 0 评论 -
多重背包的解决方式
记录一下。如果数据允许当然直接拆物体。不允许就二进制拆分物体。还不允许就只能分物体考虑。因为物体只能取整数,所以花费每次至少为当前价格w。那我们大可以按照%w分类,然后依次更新。然后我们只需要让f(i+kw)-k*v最大就行,,单调队列优化即可。枚举余数,枚举倍数,然后算。对于每一个不同的余数重置单调队列。代码,,#include <iostream...原创 2019-10-30 19:42:09 · 191 阅读 · 0 评论 -
【NOIP2017普吉,,普及组】跳房子【二分答案】【单调队列】【dp】
传送门现在看来是非常裸的一道题。同样是只能从给定区间转移。但区间长度不确定。一眼就能看出来的问题单调性,那就二分吧。二分金币,得到区间长度,单调队列优化一些即可。方程应该是秒出的。从前面选最大的加上自己就行。#include<bits/stdc++.h>using namespace std;#define in read()#define int long l...原创 2019-10-23 08:51:52 · 215 阅读 · 0 评论 -
【洛咕P3400】仓鼠窝【单调栈】
死灵复活时间ouo闲的没事儿才写博客的死鸽子这道题为P5300埋下了很好的伏笔qwq解法是差不多的。一个矩阵里面的子矩阵有多少个很好求如果加上了一些限制,我们就要重新考虑。第一个逻辑是把大问题变成小问题比如合法子矩阵数等于以每个点为右下角的合法子矩阵数和。第二个逻辑是继承先前答案不重复计算使用铅垂高思想,记录每个点向上能到达的第一个非法点位置。如果当前点的合...原创 2019-10-04 09:00:14 · 207 阅读 · 0 评论 -
【GXOI/GZOI2019】与或和【单调栈】
所以这和仓鼠窝(窝头)没什么区别twt(笑死我了这个都能识别关键字hhhhh我也是被审核失败过的男人了hhhh)都说了没区别了啦!首先我们按位处理。所以这是一个0/1矩阵。与操作就是求全都是1的子矩阵或操作是求至少一个1的子矩阵全都是1就是仓鼠窝窝头至少一个1的话那就是总数减去都是0的子矩阵数嘛!总数直接公式可以,递推也可以所以这道题就是两个仓鼠窝窝头,...原创 2019-10-11 13:40:40 · 127 阅读 · 0 评论