DP/单调队列优化


  呃……环形链求最大k子段和。

  首先拆环为链求前缀和……

  然后单调队列吧<_<,裸题没啥好说的……

WA:为毛手写队列就会挂,必须用STL的deque?(写挂自己弱……sigh)

 1 //HDOJ 3415
 2 #include<queue>
 3 #include<cmath>
 4 #include<vector>
 5 #include<cstdio>
 6 #include<cstring>
 7 #include<cstdlib>
 8 #include<iostream>
 9 #include<algorithm>
10 #define rep(i,n) for(int i=0;i<n;++i)
11 #define F(i,j,n) for(int i=j;i<=n;++i)
12 #define D(i,j,n) for(int i=j;i>=n;--i)
13 #define pb push_back
14 #define CC(a,b) memset(a,b,sizeof(a))
15 using namespace std;
16 int getint(){
17     int v=0,sign=1; char ch=getchar();
18     while(!isdigit(ch)) {if(ch=='-') sign=-1; ch=getchar();}
19     while(isdigit(ch))  {v=v*10+ch-'0'; ch=getchar();}
20     return v*sign;
21 }
22 typedef long long LL;
23 const int N=100010,INF=~0u>>2;
24 const double eps=1e-8;
25 /*******************template********************/
26
27 int a[N],f[N],q[N+N],s[N];
28 deque<int>Q;
29 void work(){
30     int n=getint(),k=getint();
31     s[0]=0;
32     F(i,1,n){
33         a[i]=getint();
34         s[i]=s[i-1]+a[i];
35     }
36     F(i,n+1,n+k-1) s[i]=s[i-1]+a[i-n];
37     int m=n+k-1;
38
39     int _sum=-INF,pos=0,end=0;
40     Q.clear();
41     F(i,1,m){
42         while(!Q.empty() && s[Q.back()]>s[i-1]) Q.pop_back();
43         while(!Q.empty() && Q.front()<(i-k)) Q.pop_front();
44         Q.push_back(i-1);
45         if (s[i]-s[Q.front()]>_sum){
46             _sum=s[i]-s[Q.front()];
47             pos=Q.front()+1;
48             end=i;
49         }
50     }
51     printf("%d %d %d\n",_sum,pos,(end>n) ? (end-n) : end);
52 }
53 int main(){
54     int T=getint();
55     while(T--) work();
56     return 0;
57 }

View Code

转载于:https://www.cnblogs.com/Tunix/p/4320006.html

【HDOJ】【3415】Max Sum of Max-K-sub-sequence相关推荐

  1. 【LINQ】Linq to SQL -- Count/Sum/Min/Max/Avg 操作符

    适用场景 统计数据,比如统计一些数据的个数,求和.最小值.最大值.平均数 Count 说明:返回集合中的元素个数,返回Int类型:不延迟.生成SQL语句为:SELECT COUNT(*) FROM 1 ...

  2. 【HDOJ图论题集】【转】

    1 =============================以下是最小生成树+并查集====================================== 2 [HDU] 3 1213 How ...

  3. 【HDOJ 2020.09.29】一些语法水题ByVJ

    By VJ 小抄c版v2 A //上次不是做过了 #include<stdio.h> int main(){char a, b, c, t;while(scanf("%c%c%c ...

  4. 51Nod-1051 最大子矩阵和【最大子段和+DP】

    1051 最大子矩阵和 基准时间限制:2秒 空间限制:131072KB 分值:40难度:4级算法题 一个M*N的矩阵,找到此矩阵的一个子矩阵,并且这个子矩阵的元素的和是最大的,输出这个最大的值. 例如 ...

  5. 第一届河北工业大学程序设计竞赛校赛 【个别题的解析】

    水平有限,把会做的题做了一些总结. 目录 A: WELCOME! B: POOLING C: 标枪游戏 E: 简单数论 F: 回文串 J: 有点复杂的gcd问题 A: WELCOME! 题目地址 #i ...

  6. 【周末狂欢赛6】[AT1219]历史研究(回滚莫队),大魔法师(矩阵+线段树),单峰排列

    文章目录 T1:单峰排列 题目 题解 code T2:历史研究 题目 题解 code T3:大魔法师 题目 题解 code 我可能这辈子都更不出来狂欢赛5了,先咕咕 T1:单峰排列 题目 一个n的全排 ...

  7. LeetCode算法题个人笔记【数组】【简单1-5】【c++】

    资料来源于leetcode官网 记得多看评论! 听从大佬建议从同一类型题目开始做,首先决定做数组! 前面还有三道简单题已经做过了.共47道简单题 ** 第一题:搜索插入位置 ** 给定一个排序数组和一 ...

  8. HDU-1003 Max Sum(动态规划)

    题目回顾(HDU-1003): Max Sum Problem Description Given a sequence a[1],a[2],a[3]......a[n], your job is t ...

  9. 【HDOJ】1003 Max Sum_天涯浪子_新浪博客

    [题目]http://acm.hdu.edu.cn/showproblem.php?pid=1003 [报告] 既然是子区间加和问题,可以用减法来处理.比如求[5..10]的和,可以直接用[1..10 ...

  10. Pandas-数据操作-数值型(一):统计函数【describe、count、sum、mean、median、max、std、skew(偏度)、kurt(峰度)】【参数:axis、skipna】

    综合分析: 能够直接得出很多统计结果,count, mean, std, min, max 等 # 计算平均值.标准差.最大值.最小值 data.describe() 一.统计函数 统计函数 描述 c ...

最新文章

  1. 增加一个dbe连接_pogo pin连接器是如何解决振动的问题?
  2. 【记录】batch_size对cnn训练的影响
  3. 《Effective C#》Item 15:利用using和try-finally来释放资源
  4. Spring Cloud构建微服务架构:服务容错保护(Hystrix断路器)
  5. python3.6字典有序_一日一技:Python 3.6以后,字典有序
  6. 【Boost】boost库asio详解1——io_service::run函数无任务时退出的问题
  7. python需要配置环境变量吗_python需要设置哪些环境变量?我只知道一个PYTHONHOME指向安装目录。(python详细安装教程 path)...
  8. python注册系统_Python制作简易注册登录系统
  9. 文字超过省略_纯CSS实现“文本溢出截断省略”的几种方法
  10. 两路语音 两路计算机数据综合,两路语音PCM时分复用系统的设计.DOC
  11. 【极限精简887M,老机专用】星岚技术 Win7 x64 极限精简版 V2021.4
  12. 安卓pdf阅读器_详细解读:除了Kindle,还有哪些电子阅读器可以满足书迷的需求?...
  13. SRS 流媒体服务器对http-flv流进行配置
  14. 基于ASP.NET的图书在线销售管理系统设计与实现
  15. python中的乘方_python中的乘方
  16. 导出excel.支持在线打开保存
  17. 小功能⭐️U3D异步加载功能
  18. python3.x程序设计基础周元哲答案_周元哲
  19. [渗透教程]-001-信息收集-第三方软件
  20. 群晖NAS 7.X搭建本地web服务器并实现公网访问 1/3

热门文章

  1. 【老孙随笔】求职,不要无的放矢
  2. Posix线程编程指南(2)
  3. 可视化概念思维导图软件 MindMapper 17 Arena 完美汉化开心版
  4. 刷屏!马化腾:腾讯只是一家普通公司,随时可以被替换
  5. 面试官:@Transactional 注解是如何实现的?面试必问!
  6. 程序员的世界有 10 种人,你是哪一种?
  7. 原创整理:92份面试题,累计3625页,肝的太累了!
  8. 一篇全面的 MySQL 高性能优化实战总结!
  9. 架构师进阶:Linux进程间如何共享内存?
  10. python为何排名越来越前_为什么C#排名和Python相差越来越大?