单调队列
wwt9b15bs
这个作者很懒,什么都没留下…
展开
-
【题解】CH1201 单调队列
题目链接 右端点从前向后扫描,对每个i执行以下三个步骤: 1.判断队头决策与i的距离是否超出M的范围,若超出则出队。 2.此时队头就是右端点为i时,左端点j的最优选择。 3.不断删除队尾决策,直到队尾对应的S值小于s[i]。然后把i作为一个全新的决策入队。(李煜东《算法竞赛进阶指南》)#include<cstdio>#include<algorithm>...原创 2018-08-27 15:54:22 · 267 阅读 · 0 评论 -
【题解】洛谷P2698[USACO12MAR]花盆 单调队列
题目链接 看到是一道蓝题时有点慌……想了想感觉是维护一个单增的队列,就不太慌了。结果还是没AC,参考了大佬题解后改出来了。#include<cstdio>#include<algorithm>#include<cmath>using namespace std;#define _rep(i,a,b) for(int i=(a);i<=(b原创 2018-09-05 07:18:48 · 176 阅读 · 0 评论 -
【题解】洛谷P2219[HAOI2007]修筑绿化带 单调队列+双端队列
题目链接 最开始又想打ST表(就像理想的正方形那题一样),结果发现不好办……学习了大佬博客方法很巧妙#include<cstdio>#include<queue>#include<algorithm>using namespace std;#define _rep(i,a,b) for(int i=(a);i<=(b);i++)cons原创 2018-09-05 07:19:09 · 220 阅读 · 0 评论 -
【题解】洛谷P2569[SCOI2010]股票交易 背包问题+单调队列优化
题目链接 学习了大佬题解,这波方程变形后单调队列维护天秀。#include<cstdio>#include<algorithm>using namespace std;#define _rep(i,a,b) for(int i=(a);i<=(b);i++)#define rep_(i,a,b) for(int i=(a);i>=(b);i--...原创 2018-09-05 07:19:38 · 279 阅读 · 0 评论 -
【题解】hdu2430(2018-07-25校赛树状数组-最值-二分-二维 B)单调队列
题目链接 (我一直以为自己以前没写过单调队列的题来着)话说这题是出到树状数组练习题里的,我却写了个单调队列……#include<cstdio>#include<cstring>#include<algorithm>using namespace std;typedef long long ll;const int N=1e6+5;struct ...原创 2018-09-08 06:53:32 · 254 阅读 · 0 评论 -
【题解】LibreOJ10012 斜率优化+单调队列+双端队列
题目链接把平均数写出来,发现就是一个斜率公式。容易证明上凸点一定不是最优解,所以我们用单调队列维护下凸序列。#include<cstdio>#include<queue>#include<algorithm>using namespace std;const int N=1e5+10;int n,l;double sum[N],k,a...原创 2018-09-16 11:55:56 · 203 阅读 · 0 评论 -
【题解】CH5501 环路运输 单调队列+环形处理
题目链接描述在一条环形公路旁均匀地分布着N座仓库,编号为1~N,编号为 i 的仓库与编号为 j 的仓库之间的距离定义为 dist(i,j)=min(|i-j|,N-|i-j|),也就是逆时针或顺时针从 i 到 j 中较近的一种。每座仓库都存有货物,其中编号为 i 的仓库库存量为 A_i。在 i 和 j 两座仓库之间运送货物需要的代价为 A_i+A_j+dist(i,j)。求在哪两座仓库之间运...原创 2018-09-28 17:05:53 · 705 阅读 · 0 评论