oj 26319 最大子序和
题意:一个长度为n的整数序列,从中找出一段不超过m的连续子序列,使得整个序列的和最大。
可以用单调队列来解决这道题,我们把寻找字段和转化为前缀和之差,然后固定右端点,不断枚举左端点,使其区间内元素个数不超过m个
如果k<j且Sk>=Sj,那么k这个元素是一定不如j的
#include<bits/stdc++.h> using namespace std; const int maxx = 300010; int sum[maxx],q[maxx];//q记录下标 int main() {int n,m;while(~scanf("%d%d",&n,&m)){int t;for(int i=1;i<=n;i++){scanf("%d",&t);sum[i]=sum[i-1]+t;}int l=1,r=1,ans=sum[1];for(int i=1;i<=n;i++){while(l<=r&&q[l]<i-m)l++;ans=max(sum[i]-sum[q[l]],ans);while(l<=r&&sum[q[r]]>=sum[i])r--;q[++r]=i;}printf("%d\n",ans);}return 0; }
转载于:https://www.cnblogs.com/HooYing/p/10948901.html
oj 26319 最大子序和相关推荐
- C++解OJ题--最大子数组和(第一次尝试动态规划,很烧脑)
虽然这道题标注的是简单,但是对于我一个新手来说还真的挺烧脑的. 我想说: 对于动态规划的知识,我可谓花了大功夫.各种看视频看博客折腾了一整天,不夸张真的是一整天.你以为我懂了,不,这种东西我看 ...
- 伍六七带你学算法 入门篇 ——最大子序和
力扣 53. 最大子序和 难度简单 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4 ...
- python【力扣LeetCode算法题库】53- 最大子序和
最大子序和 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: ...
- tyvj1305 最大子序和 【单调队列优化dp】
描述 输入一个长度为n的整数序列,从中找出一段不超过M的连续子序列,使得整个序列的和最大. 例如 1,-3,5,1,-2,3 当m=4时,S=5+1-2+3=7 当m=2或m=3时,S=5+1=6 输 ...
- LeetCode-53. 最大子序和-最简单的动态规划(Python3)
题目链接: 53.最大子序和 题目描述: 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,- ...
- LeetCode最大子序和 (动态规划)python
描述 给定一个整数数组,找到一个具有最大和的子数组,返回其最大和. 子数组最少包含一个数 您在真实的面试中是否遇到过这个题? 样例 样例1: 输入:[−2,2,−3,4,−1,2,1,−5,3] 输出 ...
- leetcode-最大子序和(动态规划讲解)
最大子序和(动态规划讲解) 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输 ...
- Leetcode-53:最大子序和
题目链接 法一:枚举 双重for循环暴力枚举 时间复杂度:O(n^2) 法二:动态规划 时间复杂度:O(n) 1.构建状态转移方程 假设以nums数组中第i个位置结尾的最大子序和为P(i) 那么以i+ ...
- LeetCode53:最大子序和(分治思想,Python3实现)
最大子序和 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: ...
- 最大子序和:单调队列维护一个上升序列
最大子序和 输入一个长度为n的整数序列,从中找出一段长度不超过m的连续子序列,使得子序列中所有数的和最大. 注意: 子序列的长度至少是1. 输入格式 第一行输入两个整数n,m. 第二行输入n个数,代表 ...
最新文章
- NetDevOps — NAPALM
- 设计模式六:适配器模式
- hadoop的HDFS-----防火墙导致9870端口无法访问
- ui5 resource file 404 error
- UNIX网络编程笔记(3):简单的并发服务器
- Python编程常见错误表现形式与原因分析
- 14英寸电脑长宽多少_华为MateBook 14 2020款 14英寸轻薄笔记本王者升级
- 安装新版Magisk卡在启动页面等问题以及解决办法
- oracle设置缓冲区大小设置,描述Oracle优化库高速缓冲区
- 信息学最全知识点清单
- 最小二乘(OLS)回归法及其在R中的…
- 给你一台大疆无人机,你能用来做点啥?(二)-----——倾斜摄影建模
- 交换机短路_交换机环路发现及处理
- 什么是数字孪生专用引擎技术
- python中函数的学习
- win10输入法不显示图标并且只有英文的有效解决方法
- 关于ERP系统,你可能不知道的10件事
- 离线安装ruby、rubygems
- exercise code 8
- 拼多多新手商家怎么定价?
热门文章
- DDraw笔记-创建表面
- 时间序列分析工具箱——tibbletime
- 送你一份价值5800元的技术干货PPT | 技术管理者工作坊强势来袭!
- android - Unable to add window -- token null is not for an application的解决方案
- Interval GCD
- 数据库表里面加表中的数据
- python random 之基础点名器
- windows server 2003 远程桌面最大连接数调整与windows 2008远程桌面后,本地帐号自动锁定...
- 简单算术表达式计算器
- 有趣的视频 国外计算机课程