单调队列
LowestJN
强省弱OIer
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[BZOJ2806][Ctsc2012][后缀自动机][队列优化][DP]Cheat
题意略……因为要让L的长度最大,可以二分L,然后check 要求在L的限制下最大的匹配长度,可以DP。 令f[i]表示前i个字符的最大匹配长度,g[i]表示1~i可以匹配的最长后缀的长度,则f[i]=max{f[j]+i-j | i-g[i]<=j<=1-L} i-g[i]是单调不降的,所以这个DP可以用单调队列优化#include <cstdio>#include <iostream>#原创 2017-02-15 18:35:31 · 465 阅读 · 0 评论 -
[BZOJ1023][SHOI2008][仙人掌直径][队列优化DP]cactus仙人掌图
求仙人掌直径裸题 看这篇题解吧 http://z55250825.blog.163.com/blog/static/150230809201412793151890/#include <cstdio>#include <iostream>#include <algorithm>#define N 100010using namespace std;int n,m,u,v,k,cnt,Ans原创 2017-03-04 10:33:16 · 651 阅读 · 0 评论 -
[BZOJ2228][Zjoi2011][单调队列]礼物(gift)
题意在一个p*q*r的正方体内找到一个a*a*b的子正方体,满足子正方体内均为N,求最大的4ab考虑以一个面作为底面,可以正方体中每个点为左下角的正方形的边长(正方面平行于底面),然后考虑同一列中的点,可以把问题就转化成求一个序列,序列的最小值和区间长度相乘的结果最小。用单调队列做。 转动下正方体就可以计算所有情况啦#include <cstdio>#include <iostream>#in原创 2017-03-12 22:07:12 · 762 阅读 · 0 评论 -
[树上依赖多重背包 DP] BZOJ 4910 [Sdoi2017]苹果树
题目 t−h≤kt-h\le k 的限制其实就是选一条到叶节点的链,然后再选k个的最大值(因为vi都大于零)。因为 ai>1ai>1 的点,肯定是先选了第一个才会选第二个 所以可以把 ai>1ai>1 的点拆成两个点 i′,i′′i',i'',ai′=1ai'=1,ai′′=ai−1ai''=ai-1,让 i′′i'' 变成 i′i' 的儿子。这个树上依赖背包可以通过两个遍历子树顺序相反的后序遍历原创 2017-09-02 09:01:24 · 1489 阅读 · 0 评论 -
[二分 单调队列] Atcoder AGC003 E. Sequential operations on Sequence
首先可以发现,如果 xi>xi+1x_i>x_{i+1} 那么 xix_{i} 就是没用的,所以我们就倒过来求一个递减的序列然后考虑第 ii 次操作后的数列,肯定是由第 i−1i-1 次操作后的数列循环几次再加一个前缀得到的而那个前缀也是由之前的某个前缀得到的,那么就二分一下,记一下每次操作会执行几次(也就是被后面的操作覆盖几次)瞎搞一下因为每次操作最多二分log次,所以总复杂度是 O(nlog2n原创 2017-12-07 18:00:16 · 527 阅读 · 0 评论
分享