随笔分类 -  动态规划---单调队列优化

单调队列专题题解
摘要:$T1:[POI2010]PIL Pilots$ 题意:给定$n,k$和一个长度为$n$的序列,求最长的最大值最小值相差不超过$k$的序列的长度. 分析:维护两个单调队列,一个维护最大值,一个维护最小值,每次更新前先检查两个队列的队头的下标是否相差在$k$以内,如果大于则令下标较小的队头出队,同时记 阅读全文

posted @ 2019-11-13 19:03 PPXppx 阅读(233) 评论(0) 推荐(0)

跳房子
摘要:"洛咕" 题意:在地面上确定一个起点,然后在起点右侧画$n(n include include include include include include include define ll long long using namespace std; inline int read(){ in 阅读全文

posted @ 2019-09-27 19:47 PPXppx 阅读(218) 评论(0) 推荐(0)

[USACO09Open] Tower of Hay 干草塔
摘要:"洛咕" 简化版题意:给定$N(Nf[j]$.这个东西我们可以用单调队列来维护. 我们维护一个$f[]+sum[]$单调递增的队列,每次先检查队首,如果$sum[i] =f[q[l+1]]+sum[q[l+1]]$就说明$q[l+1]$比$q[l]$更优,因为这个式子说明$q[l+1]$也可以更新$ 阅读全文

posted @ 2019-07-27 20:25 PPXppx 阅读(134) 评论(0) 推荐(0)

Cut the Sequence
摘要:"POJ" 题意:给定一个长度为N($N include include include include define LL long long using namespace std; inline LL read(){ LL s=0,w=1;char ch=getchar(); while(ch 阅读全文

posted @ 2019-06-01 10:51 PPXppx 阅读(511) 评论(8) 推荐(1)

Fence
摘要:"POJ" 题意:有$N(N include include include include using namespace std; inline int read(){ int s=0,w=1;char ch=getchar(); while(ch'9'){if(ch==' ')w= 1;ch= 阅读全文

posted @ 2019-05-28 21:24 PPXppx 阅读(207) 评论(0) 推荐(0)

环路运输
摘要:"CH" 题意:在一条环形公路旁均匀地分布着$N$座仓库,编号为$1~N$,编号为$i$的仓库与编号为$j$的仓库之间的距离定义为$dist(i,j)=min(|i j|,N |i j|)$,也就是逆时针或顺时针从$i$到$j$中较近的一种.每座仓库都存有货物,其中编号为$i$的仓库库存量为$A_i 阅读全文

posted @ 2019-05-28 21:09 PPXppx 阅读(231) 评论(1) 推荐(1)

修剪草坪/选择数字(单调队列优化DP)
摘要:"双倍经验!!!" "双倍快乐!!!" 题意:给定n个非负整数$a[1]...a[n]$.现在你可以选择其中若干个数,但不能有超过k个连续的数字被选择.你的任务是使得选出的数字的和最大. 分析:正难则反,设$f[i]$表示表示不选第i头牛的最小代价,结果会发现:$f[i]=min(f[j])+a[i 阅读全文

posted @ 2019-01-25 22:16 PPXppx 阅读(94) 评论(0) 推荐(0)

股票交易(单调队列优化DP)
摘要:"股票交易" : 通过一段时间的观察,预测到了未来T天内某只股票的走势,第i天的股票买入价为每股 $AP_i$​第i天的股票卖出价为每股$BP_i$(数据保证对于每个i,都有$AP_i \geq BP_i$),但是每天不能无限制地交易,于是股票交易所规定第i天的一次买入至多只能购买$AS_i$股,一 阅读全文

posted @ 2019-01-25 22:02 PPXppx 阅读(180) 评论(0) 推荐(0)