修剪草坪 / Mowing the Lawn G

题目链接:ybt金牌导航1-4-3 / luogu P2627

题目大意

有一个序列,你要在里面选一个序列,使得不会有超过 k 个数是在原序列中相邻的。

思路

我们先看到在序列中选要的好像没有什么思路,那我们考虑选哪些是不选的。

那我们就会发现我们可以进行 DP。
设 fif_ifi​ 为前 iii 个数,满足题目的要求,且第 iii 个不选,不选的数的和的最小值。
那容易得出转移方程:(f0=0f_0=0f0​=0 显然)
fi=ei+min⁡j=max⁡{i−k−1,0}i−1fjf_i=e_i+\min\limits_{j=\max\{i-k-1,0\}}^{i-1}f_jfi​=ei​+j=max{i−k−1,0}mini−1​fj​

那你可以发现它这个 min⁡\minmin 可以用单调队列来维护,然后就好了。

代码

#include<cstdio>
#include<iostream>
#define ll long longusing namespace std;int n, k, l, r, a[100001];
ll e[100001], f[100001], sum, ans = 1e15;int main() {scanf("%d %d", &n, &k);for (int i = 1; i <= n; i++) scanf("%lld", &e[i]), sum += e[i];k++;f[1] = e[1];l = 1;r = 1;for (int i = 1; i <= n; i++) {//单调队列while (a[l] < i - k && l <= r) l++;f[i] = f[a[l]] + e[i];//dp转移while (f[i] <= f[a[r]] && l <= r) r--;a[++r] = i;}for (int i = max(0, n - k + 1); i <= n; i++)ans = min(ans, f[i]);//枚举最后一个不选的位置在哪里printf("%lld", sum - ans);return 0;
}

【ybt金牌导航1-4-3】【luogu P2627】修剪草坪 / Mowing the Lawn G相关推荐

  1. 【ybt金牌导航2-3-3】【luogu P3975】K小子串 / 弦论

    K小子串 / 弦论 题目链接:ybt金牌导航2-3-3 / luogu P3975 题目大意 给你一个字符串,要你求字典序第 k 小的子串. (相同的子串可能算一个,也可能算多个,数据以读入 0/1 ...

  2. 【ybt金牌导航8-3-3】【luogu P4593】分数计算 / 教科书般的亵渎(数学)(拉格朗日插值)

    分数计算 / 教科书般的亵渎 题目链接:ybt金牌导航8-3-3 / luogu P4593 题目大意 有一些怪,血量从 1~n,其中有 m 个数是没有怪的,给出这些数. 然后你可以每次操作攻击所有怪 ...

  3. 【ybt金牌导航4-7-3】【luogu P3437】三维俄罗斯方块/TET-Tetris 3D

    三维俄罗斯方块/TET-Tetris 3D 题目链接:ybt金牌导航4-7-3 / luogu P3437 题目大意 要你支持区间求最大,并把这个区间的所有点高度改为你求得的最大值加一个值. 最后要你 ...

  4. 【ybt金牌导航3-6-3】【luogu P3007】奶牛议会 / The Continental Cowngress G(两种方法)

    奶牛议会 / The Continental Cowngress G 题目链接:ybt金牌导航3-6-3 / luogu P3007 题目大意 有一些人,每个人对众多决案中的两个决案有表示好或不好. ...

  5. 【ybt金牌导航3-2-1】【luogu P3376】网络最大流【Dinic算法】

    网 络 最 大 流 网络最大流 网络最大流 题目链接:ybt金牌导航3-2-1 / luogu P3376 题目 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入 第一行包含四个正整数 ...

  6. 【luogu P4036】【ybt金牌导航4-5-3】火星人

    火星人 题目链接:luogu P4036 / ybt金牌导航4-5-3 题目大意 给你一个字符串,要你维护三个东西. 修改字符串的一个字符,往字符串的一个地方插入一个字符,询问两个后缀的最长公共前缀. ...

  7. 【启发式合并】梦幻布丁(金牌导航 启发式合并-1/luogu 3201)

    梦幻布丁 金牌导航 启发式合并-1 luogu 3201 题目大意 有若干个布丁,给出它们的颜色,每次将一个颜色的所有布丁变成另一种颜色,然后询问有多少段连续的数 输入样例 4 3 1 2 2 1 2 ...

  8. 【ybt金牌导航8-7-1】数对统计 / 关于莫比乌斯函数的少量内容

    数对统计 题目链接:ybt金牌导航8-7-1 题目大意 给你 n,m,求 gcd(x,y)=1 的数对个数. 1<=x<=n,1<=y<=m 思路 莫比乌斯函数 什么东西 首先 ...

  9. 【DP】【树状数组】方伯伯的玉米田/优美玉米(luogu 3287/金牌导航 数据结构优化DP-5)

    正题 luogu 3287 金牌导航 数据结构优化DP-5 题目大意 有n个玉米,给出高度,你可以选择一个区间,使这个区间的玉米高度+1,你可以进行k次这样的操作,查询你操作完后最长不下降子序列最大值 ...

  10. 【DP】【树状数组】免费馅饼(luogu 7302/金牌导航 数据结构优化DP-4)

    正题 luogu 7302 金牌导航 数据结构优化DP-4 题目大意 在坐标轴上会出现n个金币,第i个金币tit_iti​时在wiw_iwi​出现(只出现一个单位时间),价值为sis_isi​,当你t ...

最新文章

  1. Unity网络多玩家游戏开发教程(上册)
  2. mybatis date类型映射_MapStruct 映射工具
  3. 北京理工大学python系列课程-北理工《Python语言程序设计》荣获中国最美慕课一等奖...
  4. Django框架之跨站请求伪造
  5. 最优化——分析线性规划的对偶问题的等价性
  6. 【ruoyi】java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.ScheduledThreadPoo
  7. kotlin之重载运算符(十一)
  8. 数值保留几位小数后四舍五入、向上取值、向下取值、
  9. 读写文件--with open
  10. Unity点击播放卡死问题的解决
  11. 实时即未来!Flink Forward Asia 2021 议程正式上线!
  12. Java 实现JSON字符串、JSON对象和Java对象的相互转换(fastjson)
  13. mysql 勒索病毒怎么恢复_敲诈者病毒解密恢复 勒索病毒数据库恢复 数据库中病毒解密恢复...
  14. python如何查看opencv当前版本
  15. c花体复制_可复制花体字大全?
  16. 如何在Mac上使用QuickTime Player 录制影片?
  17. VM-EXIT(EPT Violation)调用链
  18. iOS动画专题·UIView二维形变动画与CAAnimation核心动画
  19. 【saltstack】配置salt-master端REDIS_RETURN
  20. G - Nightmare Ⅱ (双向BFS)

热门文章

  1. Java枚举(enum)
  2. [iOS]让你的应用支持新iPad的Retina显示屏
  3. UV/PV 的共同点和区别
  4. USB3.0 HUB方案之VL817-Q7
  5. 在线卡西欧计算机,卡西欧科学计算器在线
  6. 【C#实现猜数字游戏】
  7. 计算机英语六级时间,计算机一级考试_6月英语六级报名时间
  8. 使用 spring.profiles.active 及 @profile 注解 动态化配置内部及外部配置
  9. RNA-seq那些事儿
  10. 参加2010年磨房《在路上 - 十年》百公里徒步活动小记