除虫药水

描述

在十年前,除虫是十分艰苦的工作。那时,使用普通药水进行除虫的效果极差,在一片苹果 林中使用后除掉的虫仅为极小一部分。

比如说,Bugs 镇共有 N 片苹果林,对第i 片使用普通药水可以除掉 ai 吨虫。xxx的任务是对这 N 片苹果林中的每一片进行除虫,并且他必 须按照 1 到 N 的顺序依次处理。 xxx另有一种高级药水,其除虫能力为普通药水的 K 倍, 也就是说,在第i 片苹果林中使用高级药水可以除掉 Kai 吨虫。但是,高级药水是极为珍贵 的,xxx 仅有 M 瓶。并且,由于其挥发性极强,每瓶高级药水都必须在至多 L 片连续的 苹果林中使用。现在 xxx 想知道他最多能杀多少吨虫。

输入

第一行四个整数 N, M , K, L 。

第二行 N 个整数,为 ai 。

输出

输出一行一个整数表示答案。

样例输入

5 5 5 5
1 2 3 4 5

样例输出

75

提示

对于 20%的数据, N <=10 。

对于 100%的数据,1<=N, M , L<=1000,1< K< 100,0 <= ai <=1000。

题意

每瓶高级药水都必须在至多 L 片连续的 苹果林中使用。

这句话不是很好理解,但实际上也就是说在第 i 片果林使用了高级药水,则 i ~ i+l-1 这些果林都会被高级药水影响

分析

f[i][j] 表示前 i 片苹果林中使用了 j 瓶高级药水能够除掉的最多的虫数

转移:由当前这一片果林,往后更新

因为这道题还多涉及了一个 L ,那如果是从之前的位置推当前的答案,处理起来就比较麻烦了

代码

#include<bits/stdc++.h>
#define N 1009
using namespace std;
int a[N],sum[N],f[N][N];
int n,m,k,l;
int main(){scanf("%d%d%d%d",&n,&m,&k,&l);int i,j;for(i=1;i<=n;++i){scanf("%d",&a[i]);sum[i]=sum[i-1]+a[i];//处理一下前缀和}for(i=0;i<n;++i)//千万别从1开始推,否则就会漏掉第一片果林for(j=0;j<=m;++j){f[i+1][j]=max(f[i+1][j],f[i][j]+a[i+1]);if(j){int r=min(i+l,n);f[r][j]=max(f[r][j],f[i][j-1]+k*(sum[r]-sum[i]));}}printf("%d",f[n][m]);return 0;
}

1010 - 线性dp - 除虫药水相关推荐

  1. 0x51.动态规划 - 线性DP(习题详解 × 10)

    目录 0x51.动态规划 - 线性DP 0x51.1 LIS问题 Problem A. 登山 (最长下降子序列) Problem B. 友好城市(思维) Problem C. 最大上升子序列和 0x5 ...

  2. 算法模板:动态规划之线性DP【沈七】

    算法模板:动态规划之线性DP 前言 线性DP 数字三角形模型 摘花生 最小路径和 不同路径模型 不同路径(有障碍) 过河卒 (综合应用) 最长上升子序列模型 木棍加工 导弹拦截 完结散花 参考文献 前 ...

  3. 2020.8.3【算协集训】线性dp

    线性dp A - 超级楼梯 (HDU-2041) 分析 代码 B - 一只小蜜蜂... (HDU-2044) 分析 代码 C - 母牛的故事 (HDU-2018) 分析 代码 D - Common S ...

  4. DP问题从入门到精通2.2(线性DP,最短编辑距离)

    DP入门到精通系列 DP问题入门到精通1 DP问题入门到精通2.1 DP问题入门到精通3 DP问题入门到精通4 DP问题从入门到精通5 dp问题的难点到底是什么呢? 我认为是如何写出dp的更新方式,还 ...

  5. dp2:线性dp、区间dp、计数dp.

    线性dp   动态规划时间复杂度分析,状态数目与状态转移次数相乘. 数字三角形 数字三角形 以集合的观点考虑dp问题. #include<iostream> #include<cst ...

  6. UVA11584 划分成回文串 Partitioning by Palindromes(线性DP划分+DP判断回文串)

    整理的算法模板合集: ACM模板 依旧是线性DP 我们使用闫氏DP分析法 总体DP转移的时间复杂度为O(n2)O(n^2)O(n2). 但是这里牵扯到判断 i\tt ii 到 j\tt jj 是否为回 ...

  7. 洛谷P2401 不等数列(线性DP)

    本题使用的是线性DP.就是DP数组难以思考,这里我直接给出 dp[i][j]:表示 1 ~ i 这 i 个数 , 其中j 个 " < " 有几种方法 假设我们已经把 n - ...

  8. CodeForces - 1096D Easy Problem(线性dp)

    题目链接:点击查看 题目大意:给出一个字符串,每个字符都有一个权值,现在需要删除权值和最少的字符,满足字符串中不再含有子序列"hard" 题目分析:线性dp,但我不会,看着题解写的 ...

  9. CodeForces - 456C Boredom(线性dp)

    题目链接:点击查看 题目大意:给出一个由n个数字组成的数列,现在给出规则是,每次选择数列中的一种数字 x,选择后的贡献为 x,不过操作后会删除掉所有数值为 x + 1 和 x - 1 的数,现在问如何 ...

最新文章

  1. django model中的meta类
  2. python3项目-python3项目
  3. mui框架中dialog框的实现
  4. ​​​​​​​CV:利用cv2(加载人脸识别xml文件及detectMultiScale函数得到人脸列表)+keras的load_model(加载表情hdf5、性别hdf5)并标注
  5. 使用JAX-RS和Spring构建HATEOAS API
  6. pytorch实现LeNet5
  7. c#重命名文件 递归_文件结构、文件操作及压缩解压操作
  8. python向字典添加元素_python中怎么向字典添加元素
  9. 【分享】免费建立自己的站点
  10. Apache 分割日志
  11. 如何开发一款棋牌游戏?棋牌游戏平台搭建
  12. 名人论数学——数学的本质
  13. steam服务器维护6月28,多多自走棋维护公告 多多自走棋6月28日更新内容
  14. python将时间戳转换成北京时间、标准格式
  15. 免费网站搭建与phpstorm远程部署
  16. Altium Designer之多层板设置
  17. 对接天猫精灵X1 (https 的申请)
  18. Android从程序员到架构师之路3
  19. [Excel]rank函数实现自动排序
  20. System.IO.FileNotFoundException: Could not load file or assembly ‘System.Data.SQLite.dll‘ or one of

热门文章

  1. sqlserver之远程访问配置
  2. 《统计学习方法》学习笔记(4)--k近邻法及常用的距离(or 相似度)度量
  3. WECHAT 微信扫码关注公众号方法无法获取头像和昵称了
  4. YOLOv5实现吸烟行为检测
  5. 关掉微软没用的服务,让你的电脑提速百倍(转)
  6. 测试大会能给我们带来什么?
  7. 电动牙刷也有国产黑马,竟然比千元大牌还厉害 | 钛空实测
  8. 321,京东言犀×NLPCC 2022挑战赛开赛
  9. 打开outlook显示服务器内存不足,outlook无法启动,总说计算机内存不足或磁盘已满,是怎么回事?...
  10. ocr移动端名片识别