题目描述

在一年前赢得了小镇的最佳草坪比赛后,约翰变得懒惰了,再也没有修剪过草坪。现在,新一轮的比赛又开始了,约翰希望能够再次夺冠。然而,约翰家的草坪非常脏乱,因此,约翰需要让他的奶牛来完成这项工作。约翰家有N头奶牛,排成一直线,编号为1到N。每只奶牛的能力是不同的,第i头奶牛的能力为Ei。靠在一起的奶牛很熟悉,所以如果安排相邻的K+1头奶牛一起工作,她们就会密谋罢工,所以不能选中连续的K+1头奶牛。因此,约翰需要你的帮助。如何挑选奶牛,才能使她们的能力之和最高呢?

输入

第一行:两个用空格隔开的整数:N和K,1≤ N≤ 100000,1≤ K≤ N
第二行到N+1行:第i+1行有一个整数,表示第i头牛的能力Ei,1≤ Ei <= 10^9

输出

第一行:单个整数,表示最大的能力之和

数据范围限制

对于30%30\%30% 的数据,有1≤n≤101 \leq n \leq 101≤n≤10。
对于60%60\%60% 的数据,有1≤n≤2,0001 \leq n \leq 2, 0001≤n≤2,000。
对于100%100\%100% 的数据,有1≤n≤100,0001\leq n\leq100, 0001≤n≤100,000。

Code

#include<iostream>
#include<cstdio>
using namespace std;
long long n,m,a[100010],sum[100010],f[100010];
long long d[100010];
int q[100010],head=0,tail=1;
long long que(int i){ d[i]=f[i-1]-sum[i];while(head<=tail&&d[q[tail]]<d[i])tail--;q[++tail]=i;while(head<=tail&&q[head]<i-m)head++;return d[q[head]];
}
int main(){scanf("%lld%lld",&n,&m);for(int i=1;i<=n;i++)cin>>a[i],sum[i]=sum[i-1]+a[i];for(int i=1;i<=n;i++)f[i]=que(i)+sum[i];cout<<f[n];
}

2202. 修剪草坪相关推荐

  1. AcWing 1087. 修剪草坪28

    AcWing 1087. 修剪草坪 题意: 有n个数,不能选超过连续的k个数,问所能选的最大值是多少? 题解: 我们首先分析dp过程: dp[i]表示选择完前i个数的最大值 sum[i]表示前i项和 ...

  2. BZOJ 2442: [Usaco2011 Open]修剪草坪( dp )

    dp dp[ i ] 表示第 i 个不选 , 前 i 个的选择合法的最小损失 , dp[ i ] = min( dp[ j ] ) ( max( 0 , i - 1 - k ) <= j < ...

  3. bzoj 2442: [Usaco2011 Open]修剪草坪(单调队列)

    2442: [Usaco2011 Open]修剪草坪 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 1175  Solved: 602 [Submi ...

  4. BZOJ_2343_[Usaco2011 Open]修剪草坪 _单调队列_DP

    BZOJ_2343_[Usaco2011 Open]修剪草坪 _单调队列_DP 题意: N头牛,每头牛有一个权值,选择一些牛,要求连续的不能超过k个,求选择牛的权值和最大值 分析: 先考虑暴力DP,f ...

  5. BZOJ2442: [Usaco2011 Open]修剪草坪 单调队列优化dp

    Description 在一年前赢得了小镇的最佳草坪比赛后,FJ变得很懒,再也没有修剪过草坪.现在, 新一轮的最佳草坪比赛又开始了,FJ希望能够再次夺冠. 然而,FJ的草坪非常脏乱,因此,FJ只能够让 ...

  6. BZOJ 2442: [Usaco2011 Open]修剪草坪 单调队列

    Description 在一年前赢得了小镇的最佳草坪比赛后,FJ变得很懒,再也没有修剪过草坪.现在, 新一轮的最佳草坪比赛又开始了,FJ希望能够再次夺冠. 然而,FJ的草坪非常脏乱,因此,FJ只能够让 ...

  7. AcWing1087.修剪草坪(单调队列DP)

    题目传送门 在一年前赢得了小镇的最佳草坪比赛后,FJ 变得很懒,再也没有修剪过草坪. 现在,新一轮的最佳草坪比赛又开始了,FJ 希望能够再次夺冠. 然而,FJ 的草坪非常脏乱,因此,FJ 只能够让他的 ...

  8. 【DP】【单调队列优化】修剪草坪

    题目描述 在一年前赢得了小镇的最佳草坪比赛后,约翰变得懒惰了,再也没有修剪过草坪.现在,新一轮的比赛又开始了,约翰希望能够再次夺冠.然而,约翰家的草坪非常脏乱,因此,约翰需要让他的奶牛来完成这项工作. ...

  9. 【codevs4654】【BZOJ2442】修剪草坪,第一次的单调队列,优化DP

    传送门1 传送门2(仅权限号) 写在前面:终于回到老校了 思路:想学斜率优化DP-->学了学单调队列,发现很厉害的样子. 网上主要有两种DP思路,我这里写的是记录所能取得的最优值,即f[i]指第 ...

最新文章

  1. LED适用范围及寿命
  2. QT设计器主界面中文介绍
  3. html5用圆圈画猫,html5的应用-画一个可爱的小猫咪效果图
  4. Thymeleaf3语法详解
  5. js不区分大小写查找字符串
  6. LIF模型及其变种 Training Spiking Deep Networks for Neuromorphic Hardware
  7. SQL 优化之该走索引却不走索引的分析
  8. cocos2dx游戏开发简单入门视频教程 (cocos2d-x)-第2天
  9. MySQL基于日志还原数据
  10. poj 2559 Largest Rectangle in a Histogram dp!!!
  11. 打造适合 Ruby on Rails 开发的 Sublime Text
  12. php tp5 plugins,thinkphp5(tp5)使用cli模式运行
  13. 常见的几款js跳转代码
  14. JavaScript入门教程
  15. Session使用方法详解
  16. 浅谈Java对接阿里IOT
  17. 三极管工作原理--我见过最通俗讲法
  18. bzoj2754【SCOI2012】喵星球上的点名
  19. 操作系统概论知识总结
  20. microsoft vbscript编译器错误怎么解决_Win10电脑遇到DistributedCOM错误10016怎么解决?「系统天地」...

热门文章

  1. 【CG】针孔相机矩阵(Camera Matrix)详解
  2. java 面试 jvm 调优的意义 _java 培训
  3. 转载:中国电子工程师的悲哀
  4. 智能家居传感器:BME680--树莓派3B+ 搭配BME680的数据读取温湿度和气压。树莓派IIC BME680算法库 (未完成版本)
  5. git报错:remote: [session-474e1980] Access denied fatal: unable to access... 403
  6. 基于Android的家庭理财系统的设计与实现.rar(毕业论文设计+程序源码) android studio导入可直接打开
  7. Real-Time Rendering (5) - 非真实性渲染(Non-Photorealistic Rendering)
  8. 逻辑模型和物理模型的区别
  9. automation 服务器不能创建对象_高并发服务器逻辑处理瓶颈,如何解决?
  10. 拓展模块使用教程和心得(7):3irobotix杉川Delta-1A激光雷达的STM32F407HAL驱动