【ybt金牌导航1-4-3】【luogu P2627】修剪草坪 / Mowing the Lawn G
修剪草坪 / Mowing the Lawn G
题目链接:ybt金牌导航1-4-3 / luogu P2627
题目大意
有一个序列,你要在里面选一个序列,使得不会有超过 k 个数是在原序列中相邻的。
思路
我们先看到在序列中选要的好像没有什么思路,那我们考虑选哪些是不选的。
那我们就会发现我们可以进行 DP。
设 fif_ifi 为前 iii 个数,满足题目的要求,且第 iii 个不选,不选的数的和的最小值。
那容易得出转移方程:(f0=0f_0=0f0=0 显然)
fi=ei+minj=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−1fj
那你可以发现它这个 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相关推荐
- 【ybt金牌导航2-3-3】【luogu P3975】K小子串 / 弦论
K小子串 / 弦论 题目链接:ybt金牌导航2-3-3 / luogu P3975 题目大意 给你一个字符串,要你求字典序第 k 小的子串. (相同的子串可能算一个,也可能算多个,数据以读入 0/1 ...
- 【ybt金牌导航8-3-3】【luogu P4593】分数计算 / 教科书般的亵渎(数学)(拉格朗日插值)
分数计算 / 教科书般的亵渎 题目链接:ybt金牌导航8-3-3 / luogu P4593 题目大意 有一些怪,血量从 1~n,其中有 m 个数是没有怪的,给出这些数. 然后你可以每次操作攻击所有怪 ...
- 【ybt金牌导航4-7-3】【luogu P3437】三维俄罗斯方块/TET-Tetris 3D
三维俄罗斯方块/TET-Tetris 3D 题目链接:ybt金牌导航4-7-3 / luogu P3437 题目大意 要你支持区间求最大,并把这个区间的所有点高度改为你求得的最大值加一个值. 最后要你 ...
- 【ybt金牌导航3-6-3】【luogu P3007】奶牛议会 / The Continental Cowngress G(两种方法)
奶牛议会 / The Continental Cowngress G 题目链接:ybt金牌导航3-6-3 / luogu P3007 题目大意 有一些人,每个人对众多决案中的两个决案有表示好或不好. ...
- 【ybt金牌导航3-2-1】【luogu P3376】网络最大流【Dinic算法】
网 络 最 大 流 网络最大流 网络最大流 题目链接:ybt金牌导航3-2-1 / luogu P3376 题目 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入 第一行包含四个正整数 ...
- 【luogu P4036】【ybt金牌导航4-5-3】火星人
火星人 题目链接:luogu P4036 / ybt金牌导航4-5-3 题目大意 给你一个字符串,要你维护三个东西. 修改字符串的一个字符,往字符串的一个地方插入一个字符,询问两个后缀的最长公共前缀. ...
- 【启发式合并】梦幻布丁(金牌导航 启发式合并-1/luogu 3201)
梦幻布丁 金牌导航 启发式合并-1 luogu 3201 题目大意 有若干个布丁,给出它们的颜色,每次将一个颜色的所有布丁变成另一种颜色,然后询问有多少段连续的数 输入样例 4 3 1 2 2 1 2 ...
- 【ybt金牌导航8-7-1】数对统计 / 关于莫比乌斯函数的少量内容
数对统计 题目链接:ybt金牌导航8-7-1 题目大意 给你 n,m,求 gcd(x,y)=1 的数对个数. 1<=x<=n,1<=y<=m 思路 莫比乌斯函数 什么东西 首先 ...
- 【DP】【树状数组】方伯伯的玉米田/优美玉米(luogu 3287/金牌导航 数据结构优化DP-5)
正题 luogu 3287 金牌导航 数据结构优化DP-5 题目大意 有n个玉米,给出高度,你可以选择一个区间,使这个区间的玉米高度+1,你可以进行k次这样的操作,查询你操作完后最长不下降子序列最大值 ...
- 【DP】【树状数组】免费馅饼(luogu 7302/金牌导航 数据结构优化DP-4)
正题 luogu 7302 金牌导航 数据结构优化DP-4 题目大意 在坐标轴上会出现n个金币,第i个金币tit_iti时在wiw_iwi出现(只出现一个单位时间),价值为sis_isi,当你t ...
最新文章
- Unity网络多玩家游戏开发教程(上册)
- mybatis date类型映射_MapStruct 映射工具
- 北京理工大学python系列课程-北理工《Python语言程序设计》荣获中国最美慕课一等奖...
- Django框架之跨站请求伪造
- 最优化——分析线性规划的对偶问题的等价性
- 【ruoyi】java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.ScheduledThreadPoo
- kotlin之重载运算符(十一)
- 数值保留几位小数后四舍五入、向上取值、向下取值、
- 读写文件--with open
- Unity点击播放卡死问题的解决
- 实时即未来!Flink Forward Asia 2021 议程正式上线!
- Java 实现JSON字符串、JSON对象和Java对象的相互转换(fastjson)
- mysql 勒索病毒怎么恢复_敲诈者病毒解密恢复 勒索病毒数据库恢复 数据库中病毒解密恢复...
- python如何查看opencv当前版本
- c花体复制_可复制花体字大全?
- 如何在Mac上使用QuickTime Player 录制影片?
- VM-EXIT(EPT Violation)调用链
- iOS动画专题·UIView二维形变动画与CAAnimation核心动画
- 【saltstack】配置salt-master端REDIS_RETURN
- G - Nightmare Ⅱ (双向BFS)