单调队列优化DP
FSYo
我不去想是否能够成功,
既然选择了远方,
便只顾风雨兼程
展开
-
NOI.AC CSP-S 模拟 Round 3 简要题解
比赛链接T1一看就是整除分块的形式,如何整除分块发现对于 j≤ij\le\sqrt ij≤i,⌊ij⌋\left \lfloor \frac{i}{j }\right \rfloor⌊ji⌋ 对应这唯一的值,暴力乘对于 j≥sqrtij\ge sqrt ij≥sqrti,⌊ij⌋\left \lfloor \frac{i}{j }\right \rfloor⌊ji⌋ 的值可能有一段区...原创 2019-10-20 16:41:41 · 296 阅读 · 0 评论 -
股票交易[单调队列优化DP]
传送门我们用f[i][j] 表示交易到第i天,手上有j个股票的最大收益对于买入变一下形单调队列维护min中的一坨就可以了#include<bits/stdc++.h>#define N 5005using namespace std;int f[N][N];int T,P,w;int a[N],b[N] , c[N],d[N];int q[N]...原创 2018-11-14 20:34:36 · 277 阅读 · 0 评论 -
干草堆[单调队列优化DP]
传送门f[i] 表示到第i个时,第i个下面的干草的宽度很明显宽度越窄,高度越高需满足也就是我们发现,对于k>j>i,若则j比k优#include<bits/stdc++.h>#define N 100005using namespace std;int f[N],g[N],n,a[N],pre[N],q[N];int m...原创 2018-11-14 21:40:01 · 418 阅读 · 1 评论 -
Fence[单调队列+DP]
传送门f[i][j] 表示第i个工匠做到j的最大价值 显然j应满足我们将f[i][j]变形 单调队列维护f[i-1][x]-x*p[i]每次先将f[i-1][...]合法的()中的放入单调队列 , 每次更新前除去不合法状态()#include<cstdio>#include<algorithm>#define K 150#defi...原创 2018-11-19 21:27:09 · 256 阅读 · 0 评论 -
Power收集[单调队列+DP]
传送门将上一轮合法的加进来 , 更新答案之前弹出和重新将后面和发的放进来就可以了 #include<bits/stdc++.h>#define N 4050using namespace std;int val[N][N],f[N][N];int n,m,k,t,q[N],ans;int main(){ scanf("%d%d%d%d",&n,&a...原创 2018-11-22 21:56:39 · 254 阅读 · 0 评论 -
选择数字[单调队列+DP]
传送门我们发现直接dp不好做 其实选的最大值就是总的值减去选的最小值我们选最小值要保证任意k个选一个,这就是比较显然的dp了单调队列维护一下就好#include<bits/stdc++.h>#define N 100050#define LL long long#define inf 1000000000000000using namespace st...原创 2018-12-01 21:41:58 · 268 阅读 · 1 评论