HDU_3415_单调队列
http://acm.hdu.edu.cn/showproblem.php?pid=3415
初探单调队列,需要注意的是每次i维护的是i-1。
#include<iostream>
#include<cstring>
#include<cstdio>
#include<deque>
#define INF 0x3f3f3f3f
using namespace std;
int a[],sum[];
deque<int> q;
int main()
{
int T,n,k;
scanf("%d",&T);
while(T--)
{
q.clear();
sum[] = ;
scanf("%d%d",&n,&k);
for(int i = ;i <= n;i++)
{
scanf("%d",&a[i]);
sum[i] = sum[i-]+a[i];
}
for(int i = ;i < n;i++) sum[i+n] = sum[i+n-]+a[i];
int ans = -INF,left,right;
int endd = *n;
for(int i = ;i < endd;i++)
{
while(!q.empty() && sum[i-] < sum[q.back()]) q.pop_back();
if(!q.empty() && q.front() < i-k) q.pop_front();
q.push_back(i-);
if(sum[i]-sum[q.front()] > ans)
{
ans = sum[i]-sum[q.front()];
left = q.front()+;
right = i;
}
}
if(right > n) right -= n;
printf("%d %d %d\n",ans,left,right);
}
return ;
}
HDU_3415_单调队列的更多相关文章
- BestCoder Round #89  B题---Fxx and game(单调队列)
		题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5945 问题描述 输入描述 输出描述 输入样例 输出样例 题意:中文题,不再赘述: 思路: B ... 
- 单调队列 && 斜率优化dp 专题
		首先得讲一下单调队列,顾名思义,单调队列就是队列中的每个元素具有单调性,如果是单调递增队列,那么每个元素都是单调递增的,反正,亦然. 那么如何对单调队列进行操作呢? 是这样的:对于单调队列而言,队首和 ... 
- FZU 1914 单调队列
		题目链接:http://acm.fzu.edu.cn/problem.php?pid=1914 题意: 给出一个数列,如果它的前i(1<=i<=n)项和都是正的,那么这个数列是正的,问这个 ... 
- BZOJ 1047 二维单调队列
		题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1047 题意:见中文题面 思路:该题是求二维的子矩阵的最大值与最小值的差值尽量小.所以可以考 ... 
- 【BZOJ3314】  [Usaco2013 Nov]Crowded Cows 单调队列
		第一次写单调队列太垃圾... 左右各扫一遍即可. #include <iostream> #include <cstdio> #include <cstring> ... 
- BZOJ1047: [HAOI2007]理想的正方形 [单调队列]
		1047: [HAOI2007]理想的正方形 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2857 Solved: 1560[Submit][St ... 
- hdu 3401 单调队列优化DP
		Trade Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status ... 
- 【转】单调队列优化DP
		转自 : http://www.cnblogs.com/ka200812/archive/2012/07/11/2585950.html 单调队列是一种严格单调的队列,可以单调递增,也可以单调递减.队 ... 
- hdu3530 单调队列
		Subsequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ... 
随机推荐
- placeHolder和defaultValue的区别
			placeHolder和defaultValue的区别 (1)placeHolder用于提示用户,它不与后端进行交互. (2)defaultValue则是与后端交互时的默认值. 举例说明:在Selec ... 
- Java并发-Java内存模型(JMM)
			先来说说什么是内存模型吧 在硬件中,由于CPU的速度高于内存,所以对于数据读写来说会出现瓶颈,无法充分利用CPU的速度,因此在二者之间加入了一个缓冲设备,高速缓冲寄存器,通过它来实现内存与CPU的数据 ... 
- nginx 负载均衡及反向代理
			Nginx简介 Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.由俄罗斯的程序设计师开发,官方测试nginx能够支支撑5万并发链接,并且cpu.内存 ... 
- mysql 查询中文数据
			select * from comm_user WHERE length(tags)!=CHAR_LENGTH(tags) 
- Nginx作为负载均衡服务器——server参数讲解
			upstream举例 upstream backend { server backend1.ecample.com weight = 5; # wwight 代表权重 server backend2. ... 
- 关于neo4j初入门(2)
			DELETE删除 删除节点及相关节点和关系. DELETE <node-name-list> DELETE <node1-name>,<node2-name>,&l ... 
- Bug的等级程度(Blocker, Critical, Major, Minor/Trivial)及修复优先级
			Priority()和Severity(严重程度)是Bug的两个重要属性.很多新人经常混淆这两个概念. 通常,人员在提交Bug时,只定义Bug的Severity, 即该Bug的严重程度, 而将Prio ... 
- 修改 Apache 的默认端口
			修改 Apache 的默认端口修改 Apache 端口的方法是最妥协的方法了,后果是当你开启 Apache 服务器的时候,访问的本机地址将会附带端口号,比如 http://localhost:8888 ... 
- IO系统-标准C的I/O和文件I/O
			1.标准C的I/O 1.1常用函数和结构体 char *fgets(char *s, int size, FILE *stream); //整行输入 int printf(const char *fo ... 
- 用Python实现根据角4点进行矩阵二维插值并画出伪彩色图
			哈哈,题目取得这么绕,其实就是自己写了一个很渣的类似图像放大的算法.已知矩阵四周的4点,扩展成更大的矩阵,中间的元素值均匀插入,例如: 矩阵: 1 2 3 4 扩展成3x3的: 1 1.5 2 ... 
