这道题也是一道单调队列 很明显满足各种性质 f【i】表示i不选前面k-1个都选的最小损失 维护的是个单增队列 q【head】是队列最小值 代码十分简介 注意longlong就okay

#include<cstdio>
#include<cstring>
#include<algorithm>
#define LL long long
#define inf 99999999999999LL
using namespace std;
const int M=100007;
int read(){int ans=0,f=1,c=getchar();while(c<'0'||c>'9'){if(c=='-') f=-1; c=getchar();}while(c>='0'&&c<='9'){ans=ans*10+(c-'0'); c=getchar();}return ans*f;
}
LL ans,mn=inf,f[M];
int w[M],head,tail,k,n;
struct node{int pos; LL v;}q[M];f
int main()
{n=read(); k=read();for(int i=1;i<=n;i++) w[i]=read(),ans+=w[i];for(int i=1;i<=n;i++){f[i]=q[head].v+w[i];while(head<=tail&&q[tail].v>f[i]) tail--;q[++tail].v=f[i]; q[tail].pos=i;while(head<=tail&&q[head].pos<i-k) head++;}for(int i=n-k;i<=n;i++) mn=min(mn,f[i]);printf("%lld\n",ans-mn);return 0;
}

View Code

转载于:https://www.cnblogs.com/lyzuikeai/p/6971394.html

bzoj2442codevs4654 单调队列优化dp相关推荐

  1. 算法笔记--单调队列优化dp

    单调队列:队列中元素单调递增或递减,可以用双端队列实现(deque),队列的前面和后面都可以入队出队. 单调队列优化dp: 问题引入: dp[i] = min( a[j] ) ,i-m < j ...

  2. poj 2373(单调队列优化dp)

    在长为L(<=1000000)的草地(可看成线段)上装喷水头,喷射是以这个喷水头为中心,喷水头的喷洒半径是可调节的调节范围为[a,b].要求草地的每个点被且只被一个喷水头覆盖,并且有些连续区间必 ...

  3. poj 1821(单调队列优化dp)

    题意:有一道线性篱笆由N个连续的木板组成.有K个工人,你要叫他们给木板涂色.每个工人有3个参数:L 表示 这个工人可以涂的最大木板数目,S表示这个工人站在哪一块木板,P表示这个工人每涂一个木板可以得到 ...

  4. 洛谷P3195 [HNOI2008]玩具装箱TOY(单调队列优化DP)

    题目描述 P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1...N的N件玩具, ...

  5. 【计蒜客 - 蓝桥训练】蒜厂年会(单调队列优化dp,循环数列的最大子段和)

    题干: 在蒜厂年会上有一个抽奖,在一个环形的桌子上,有 nn 个纸团,每个纸团上写一个数字,表示你可以获得多少蒜币.但是这个游戏比较坑,里面竟然有负数,表示你要支付多少蒜币.因为这些数字都是可见的,所 ...

  6. 单调队列以及单调队列优化DP

    单调队列定义: 其实单调队列就是一种队列内的元素有单调性的队列,因为其单调性所以经常会被用来维护区间最值或者降低DP的维数已达到降维来减少空间及时间的目的. 单调队列的一般应用: 1.维护区间最值 2 ...

  7. POJ 1821 Fence(单调队列优化DP)

    题解 以前做过很多单调队列优化DP的题. 这个题有一点不同是对于有的状态可以转移,有的状态不能转移. 然后一堆边界和注意点.导致写起来就很难受. 然后状态也比较难定义. dp[i][j]代表前i个人涂 ...

  8. 【单调队列优化DP】烽火传递 LibreOJ - 10180

    题目来源 点我进入提交题目 反思 因为目前在学习单调队列优化DP,所以会往单调队列上面想.然后犯了一个错误就是,认为这个题目只要用单调队列就可以完成,单调队列只是用来减少时间复杂度的,遇到了求最优解的 ...

  9. AcWing 1089 烽火传递 题解(动态规划—DP—单调队列优化DP)

    AcWing 1089 烽火传递 单调队列优化DP,思路比较简单,维护一个保持元素单调递增的单调队列,队首就是第i座烽火台能接收到的,代价最小的方案,加上第i座烽火台的代价就是这座烽火台的最小值 #i ...

最新文章

  1. Elk5安装X-Pack
  2. 在.Net中,如何创建一个后台执行的进程?
  3. [转载] 快速学习-Mybatis框架概述
  4. html获取节点属性,JS操作属性节点(非常详细)
  5. 过去几年接触了很多小公司小品牌
  6. 在 Docker 中使用 mysql 的一些技巧
  7. spring mvc +cookie+拦截器功能 实现系统自动登陆
  8. Windows程序设计的第一个实例
  9. 搞深度学习如何找到需要的代码
  10. 10M/S!百度网盘偷偷更新,终于实现下载免费不限速了!
  11. Firefly III 搭建个人财务记账平台
  12. 电脑自动捆绑软件,怎么办?
  13. 本周推荐 | JDK 11 升级实践 和 Java 新特性浅探
  14. 统计每一个用户(手机号)所耗费的上行流量,下行流量,总流量
  15. python用户输入字符串串从小到大排序_python字符串从小到大排序
  16. Vue - 音频播放器插件(vue-aplayer)
  17. 深入了解音视频开发直播协议RTMP
  18. python上的免费免登录微信智能聊天机器人
  19. 【Python】实时采集疫情数据,打造可视化地图,防疫从你我做起
  20. 胡晓明卸任蚂蚁CEO,下一站:阿里CEO?

热门文章

  1. GitHub上创建组织
  2. FreeMarkerConfigurer使用TemplateDirectiveModel时获取request、session
  3. PHP判断是否有Get参数的方法
  4. Win32EXE.tpl 代码详解
  5. xpath in biztalk
  6. 手风琴特效这么飒,能用 JavaScript 实现吗?
  7. Python才排第8名!2018增速最快TOP 10编程语言盘点
  8. SEED实验系列:Collabtive系统SQL注入实验
  9. php 设置curl不超时时间,curl命令的超时时间
  10. java 防渗透_「java、工程师工作经验怎么写」-看准网