文章目录

  • ResultResultResult
  • HyperlinkHyperlinkHyperlink
  • DescriptionDescriptionDescription
  • SolutionSolutionSolution
  • CodeCodeCode

ResultResultResult


HyperlinkHyperlinkHyperlink

https://www.luogu.com.cn/problem/P2627


DescriptionDescriptionDescription

一段长度为nnn的序列,第iii个位置的权值为AiA_iAi​,你可以选取若干个数,但每一段连续的长度不能超过kkk,求最大权值

数据范围:n≤105,0≤Ai≤109n\le 10^5,0\leq A_i\leq 10^9n≤105,0≤Ai​≤109


SolutionSolutionSolution

由于AiA_iAi​非负,实际上就是不选的至多隔kkk个,考虑dpdpdp

设fif_ifi​表示处理到得到第iii个数且选了AiA_iAi​的最大权值
gig_igi​表示处理到了第iii个数且没选AiA_iAi​的最大权值

ggg的转移十分显然,gi=max{fi−1,gi−1}g_i=max\{f_{i-1},g_{i-1}\}gi​=max{fi−1​,gi−1​}
fff的话需要考虑上一次没选的位置jjj,并将j+1∼ij+1\sim ij+1∼i划归成一段,即fi=∑j−i≤kmax{gj+si−sj}f_i=\sum _{j-i\leq k}max\{g_j+s_i-s_j\}fi​=∑j−i≤k​max{gj​+si​−sj​}

注意到后面那一坨显然可以用单调队列维护一下就好了
注意把0放进队列

时间复杂度:O(n)O(n)O(n)


CodeCodeCode

#include<queue>
#include<cstdio>
#include<cctype>
#include<cstring>
#include<algorithm>
#define LL long long
using namespace std;int n,m;
struct node{int id;LL x;};
deque<node>Q;
LL g[100010],f[100010],s;
inline LL read()
{char c;LL d=1,f=0;while(c=getchar(),!isdigit(c)) if(c=='-') d=-1;f=(f<<3)+(f<<1)+c-48;while(c=getchar(),isdigit(c)) f=(f<<3)+(f<<1)+c-48;return d*f;
}
signed main()
{n=read();m=read();Q.push_back((node){0,0});for(register int i=1;i<=n;i++){s+=read();g[i]=max(g[i-1],f[i-1]);while(Q.size()&&i-Q.front().id>m) Q.pop_front();if(Q.size()) f[i]=Q.front().x+s;while(Q.size()&&g[i]-s>Q.back().x) Q.pop_back();Q.push_back((node){i,g[i]-s}); }printf("%lld",max(f[n],g[n]));
}

P2627 [USACO11OPEN]Mowing the Lawn G相关推荐

  1. 中值滤波Median filtering

    背景简述 在概率论中,中值将概率分布的高半部分与低半部分分开,对一个随机变量x 而言,x < M 的概率为0.5.对于有限实数集,其排序后中间的数值即为它的中值.集合的大小通常取奇数,以保证中值 ...

  2. 初中英语语法(013)-动词

    动词 之前简单地讲过动词,分为be动词和一般动词,这一篇将对动词进行更详细地分类和讲解. 我们将动词分为系动词,实义动词,助动词和情态动词.其中实义动词分为及物动词和不及物动词,系动词包括be动词.具 ...

  3. 第12集 副词及其他

     副词 副词的功用          He is careful 他是一很精心的.Be动词配形容词. 1. 修饰一般动词     He drives his car carefully.他小心翼翼的开 ...

  4. 恶魔奶爸语法1-3课

    文章目录 1.英语简单句的造句规则和基本语法概念 一些基本的语法概念 英语句子的本质和灵魂:五大动词--五大句型 系动词->主语+系动词+表语(主系表句型) 不及物动词->主谓句型 及物动 ...

  5. ActivityNet数据集解析

    前言 马上开题报告啦,前段时间还在做机械臂的领域的抓取,但是由于项目被其它学校抢走了,我被迫转移到教育行业的行为检测.我已经进入行为检测这个领域一周了吧,发现网上的博客还是有很多不完善的,今天我就来对 ...

  6. Ninth season thirteenth episode,Monica sang without underwear??????

    Scene: Chandler and Monica's Chandler: Hey! Ross: Yeah! Yeah! OK! Sure! Look! Can we-can we talk abo ...

  7. 英语学习详细笔记(十二)动词

    动词 1,be动词表状态,存在 2,一般动词表动作(使役动词/感官动词/授与动词/情绪动词) 连缀动词(+形容词) 1,变得,become + 形容词/名词, get, grow, come, go ...

  8. 文件上传之伪Ajax方式上传

    From: <由 Windows Internet Explorer 8 保存> Subject: =?gb2312?B?zsS8/snPtKvWrs6xQWpheLe9yr3Jz7SrI ...

  9. 过滤Linux下不同大小的文件,linux查找当前目录下 M/G 大小的文件,删除Linux下指定大小的文件

    过滤Linux下不同大小的文件,linux查找当前目录下 M/G 大小的文件,删除Linux下指定大小的文件 find ./ -type f -size +1G| xargs rm 在清理系统日志文件 ...

  10. gcc 自动识别的文件扩展名,gcc/g++ -x 选项指定语言,不同 gcc 版本 -std 编译选项支持列表

    对于执行 C 或者 C++ 程序,需要借助 gcc(g++)指令来调用 GCC 编译器. 对于以 .c 为扩展名的文件,GCC 会自动将其视为 C 源代码文件 对于以 .cpp 为扩展名的文件,GCC ...

最新文章

  1. IE浏览器error:Promise未定义
  2. php设计模式的作用是什么意思,php设计模式工厂模式有什么作用?
  3. C# 检查字符串,防SQL注入攻击(转载)
  4. Python第二天(字典)
  5. Combiner合并的使用案例
  6. ORACLE数据库测试题(一)
  7. c语言中fac函数杨辉三角,C语言常用算法
  8. gpg: no default secret key: 私钥不可用
  9. CNN--MINIST
  10. 小甲鱼 OllyDbg 教程系列 (十四) : 模态对话框 和 非模态对话框 之 URlegal 和 movgear...
  11. 微信小程序开发踩坑日志
  12. 数据结构-交换排序:(冒泡排序和快速排序)
  13. Adobe Photoshop CC 2017图文安装教程,附下载地址
  14. 求一个数各个位数之和
  15. 【c语言】两个队列实现一个栈
  16. 开局一张图帮你充分理解哈希表(散列表)
  17. TypeError: date.locale is not a function
  18. 简介:cs224n 2022 winter [Chris Manning]
  19. 白话空间统计二十七:统计学七支柱之空间统计版本(二)聚合(2)
  20. XSS测试平台搭建(超详细)

热门文章

  1. matlab相反数计数,怎么把origin表格中的数改成相反数
  2. django 过滤器-查询集-比较运算符-FQ对象-mysql的命令窗口
  3. python创建django项目语句_Python3—创建Django项目
  4. 解决git克隆到本地的仓库文件夹不显示红色感叹号、绿色对号等图标的问题
  5. 钉钉小程序摸索二:钉钉小程序开发过程中错误解决过程
  6. Hbase meta表介绍
  7. 计算机三年级到六年级知识点,小学三年级至六年级信息技术教学总结
  8. collapsar(collapsar网名什么意思)
  9. Android自定义view半圆形错误提示框和简单动画使用
  10. Python实现线性函数的拟合算法