Hrbust 1522 利用队列求最大子序列的和
子序列的和 | |||||
|
|||||
Description | |||||
输入一个长度为n的整数序列(A1,A2,……,An),从中找出一段连续的长度不超过m的子序列,使得这个子序列的和最大。 | |||||
Input | |||||
有多组测试数据,不超过20组测试数据。
对于每组测试的第一行,包含两个整数n和m(n,m<=10^5),表示有n个数,子序列长度限制为m,表示这个序列的长度,第二行为n个数,每个数的范围为[-1000, 1000]。
|
|||||
Output | |||||
对于每组测试数据,输出最大的子序列和,并换行。 | |||||
Sample Input | |||||
3 1
1 2 3
3 2
-1000 1000 1
|
|||||
Sample Output | |||||
3
1001
![]() ![]() 1 #include <stdio.h> 2 #include <iostream> 3 using namespace std; 4 const int N=100010; 5 struct node 6 { 7 int v,add; 8 }que[N],tmp; 9 int main() 10 { 11 int p,a[N],n,m,begin,end; 12 while(scanf("%d%d",&n,&m)!=EOF) 13 { 14 a[0]=0; 15 for(int i=1;i<=n;i++) 16 { 17 scanf("%d",&p); 18 a[i]=a[i-1]+p; 19 } 20 begin=0; 21 end=-1; 22 int _min=-100000000; 23 for(int i=1;i<=n;i++) 24 { 25 while(begin<=end&&a[i-1]<que[end].v) 26 { 27 end--; 28 } 29 while(begin<=end&&que[begin].add<i-m) 30 { 31 begin++; 32 } 33 tmp.add=i-1; 34 tmp.v=a[i-1]; 35 que[++end]=tmp; 36 37 if(a[i]-que[begin].v>_min) 38 _min=a[i]-que[begin].v; 39 } 40 printf("%d\n",_min); 41 } 42 } |
转载于:https://www.cnblogs.com/-sunshine/archive/2012/08/18/2645210.html
Hrbust 1522 利用队列求最大子序列的和相关推荐
- 求连续子序列平均最大权值的问题
原题链接 求长度为n.m(<=1e5)的a,b两组数组一段长度不小于x.y的连续子序列平均最大权值. 分析: 要求一个数组a长度不小于len的连续子序列平均最大权值. 二分答案x,令b[i]=a ...
- 利用“队列”解决“窗口混乱”问题
本图文利用队列这种数据结构以及多线程技术模拟了银行排队(叫号)软件的工作流程.
- python递归合并排序_python 归并排序的递归法与迭代法(利用队列)实现,以及性能测试...
递归排序核心 递归排序的核心是 分与合 分的最终结果 就是将原数组中每一个数字分作一个数组, 合就是 所有小数组不断排序,合并的过程. 合并的过程是先将两个含有一个数字的数组排序,合并(每次比较两个数 ...
- LeetCode算法题3:求最大子序列和
文章目录 前言 一.递归 二.求最大子序列和 1,最朴素的解法 2,较朴素的解法(更进一步) 3,分治和递归 4,精妙的解法 总结 前言 本文简单介绍递归的使用(依次打印出一个 int 整数的每一位) ...
- 利用队列实现车厢编组
利用队列实现车厢编组问题.假设队列元素是char类型,'H'表示硬座,'S'表示软卧,队列A表示一组硬座和卧铺混编的车厢.要求把队列A中的硬座车厢移动到队列B,队列A中的卧铺车厢移动到队列C,同时保留 ...
- 递归算法经典实例_【经典算法】利用递归方法求5!
找出数组只出现一次的数字 题目 利用递归方法求5! 示例: 输入: 5!输出: 120 思路: 当传入5时,5>1,所以返回recursion(4)*5; recursion(4)则调用recu ...
- 用计算机计算最大公因数,利用计算器求两个较大数的最大公约数的简便方法
!塑!垒三塑圭 ke.xuejiaoyujia 数学教育研究 利用计算器求两个较大数的最大公约数的简便方法 胡苏琦 (中山一中广东中山528400) 在高一数学必修A3课本中这一章介绍了如何求两 个较 ...
- 利用函数求数组中的最大值
利用函数求数组中的最大值 <!DOCTYPE html> <html lang="en"><head><meta charset=&quo ...
- 利用函数求任意两个数之间的和
利用函数求任意两个数之间的和 <!DOCTYPE html> <html lang="en"><head><meta charset=&q ...
- 利用函数求两个数的最大值
利用函数求两个数的最大值 <!DOCTYPE html> <html lang="en"><head><meta charset=&quo ...
最新文章
- 105_键盘事件对象
- ssh登录慢,等待时间长的问题
- 如何在 SAP BTP 平台 ABAP 编程环境里消费基于 SOAP 的 Web Service
- timestamp显示毫秒_mysql解决datetime与timestamp精确到毫秒的问题
- 2万月薪招聘名校学生养猪:不好好学习,养猪都不要你
- Python 3.x 中“HTTP Error 403: Forbidden“问题的解决方案
- 有趣的mysql string和0比较返回1的问题
- 6.jQuery appendTo问题解决
- 数据包接收系列 — 上半部实现(网卡驱动)
- Java网络编程(9)NIO - 群聊系统
- uploadify java实例_java uploadify 例子
- 我是全网最硬核的高并发编程作者,CSDN最值得关注的博主,大家同意吗?(建议收藏)
- WPS宏不可用解决方法
- An effective intrusion-resilient mechanism for PLCs against data tampering attacks
- 视觉SLAM14讲笔记02:ch5针孔,双目相机模型
- 模拟CS (警察和匪徒)
- 牵线搭桥!让用户更高效地完成表单填写
- HTML/CSS学习笔记(1)
- The props`strategy` cannot be null when uses class based sharding strategy
- PDF删除水印与添加水印方法介绍
热门文章
- JDBC14 ORM03 JavaBean封装
- make: 未找到命令
- 十、Shell脚本编程
- Kafka 异步消息也会阻塞?记一次 Dubbo 频繁超时排查过程
- Android 控件之 Date Time 组件
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第10节 SpringBoot整合定时任务和异步任务处理_43、SpringBoot2.x异步任务实战(核心知识)...
- 阶段3 3.SpringMVC·_03.SpringMVC常用注解_2 RequestBody注解
- 运算符优先级(cpp/c)
- export default 和 export 的使用方式(六)
- 【转载】【SQL】Sql Server Management Studio 18 打开闪退问题