POJ 2823 单调队列入门水题
最最基础的单调队列题目。一个单增一个单减。还是可以借此好好理解一下单调队列的。
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std; #define maxx 1000005 int num[maxx], inque[maxx], dque[maxx], maxn[maxx], minn[maxx];
int pre1, pre2, lst1, lst2;
int n, k; int main() {
while(~scanf("%d%d", &n, &k)) {
pre1 = , pre2 = , lst1 = , lst2 = ;
int cnt = ;
for (int i=; i<n; ++i) {
scanf("%d", &num[i]);
// 单增
while(pre1 < lst1 && num[inque[lst1-]] > num[i])
lst1--;
while(pre2 < lst2 && num[dque[lst2-]] < num[i])
lst2--;
inque[lst1++] = i;
dque[lst2++] = i;
while(pre1 < lst1 && i - inque[pre1] + > k)
pre1++;
while(pre2 < lst2 && i - dque[pre2] + > k)
pre2++;
if (i + >= k) {
maxn[cnt] = num[inque[pre1]];
minn[cnt] = num[dque[pre2]];
cnt++;
}
}
for (int i=; i<cnt-; ++i) {
printf("%d ", maxn[i]);
}
printf("%d\n", maxn[cnt-]);
for (int i=; i<cnt-; ++i) {
printf("%d ", minn[i]);
}
printf("%d\n", minn[cnt-]);
}
return ;
}
POJ 2823 单调队列入门水题的更多相关文章
- Sliding Window POJ - 2823 单调队列模板题
Sliding Window POJ - 2823 单调队列模板题 题意 给出一个数列 并且给出一个数m 问每个连续的m中的最小\最大值是多少,并输出 思路 使用单调队列来写,拿最小值来举例 要求区间 ...
- caioj 1172 poj 2823 单调队列过渡题
给定一个n个数的数列,从左至右输出每个长度为m的数列段内的最大数. 输入:第一行两个整数n和m( 1<= n <= 20 0000,m<=n).下来给出n个整数. 输出:一行一个整数 ...
- poj 2823 单调队列
思路:裸的单调队列. #include<iostream> #include<cstring> #include<cstdio> #include<algor ...
- poj 2823单调队列模板题
#include<stdio.h>//每次要吧生命值长的加入,吧生命用光的舍弃 #define N 1100000 int getmin[N],getmax[N],num[N],n,k, ...
- poj 2823 Sliding Window (单调队列入门)
/***************************************************************** 题目: Sliding Window(poj 2823) 链接: ...
- [Luogu P1886]滑动窗口--单调队列入门
题目描述 现在有一堆数字共N个数字(N<=10^6),以及一个大小为k的窗口.现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值. 例如: The array i ...
- poj 3080 Blue Jeans(水题 暴搜)
题目:http://poj.org/problem?id=3080 水题,暴搜 #include <iostream> #include<cstdio> #include< ...
- POJ 2823 Sliding Window(单调队列入门题)
Sliding Window Time Limit: 12000MS Memory Limit: 65536K Total Submissions: 67218 Accepted: 190 ...
- poj2823:单调队列入门题
今天学习了一下单调队列这种数据结构,思想不是很难 参考资料:http://www.cnblogs.com/Jason-Damon/archive/2012/04/19/2457889.html 然后自 ...
随机推荐
- LAMP开发(1)
apache web服务器软件,最近款的有7兆大小,工作:监听端口,接收请求,解析HTTP协议,转发给PHP比如:当一个客户端的请求发过来的时候,通常客户端(浏览器),请求发送给某一台IP,这个IP肯 ...
- 由SOAP说开去 - - 谈谈WebServices、RMI、RPC、SOA、REST、XML、JSON
引子: 关于SOAP其实我一直模模糊糊不太理解,这种模模糊糊的感觉表述起来是这样: 在使用web服务时(功能接口),本来我就可以通过安卓中固有的http类(使用http协议),来发送http请求,并且 ...
- 锁、volatile、CAS 比较
一.锁的劣势 (1) 在JDK1.5之前都是使用synchronized关键字保证同步的,这种通过使用一致的锁定协议来协调对共享状态的访问,可以确保无论哪个线程持有守 护变量的锁,都采用独占的方式来访 ...
- IQKeyboardManager第三方库的使用
IQKeyboardManager是iOS中解决键盘弹起遮挡UITextField/UITextView的一种很实用的工具.无需输入任何代码,不需要额外的设置.使用IQKeyboardManager的 ...
- java map典型排序
List<Map.Entry<TbDiseases, Double>> list = new ArrayList<Map.Entry<TbDiseases,Doub ...
- 使用jackson工具类把对象或集合转为JSON格式
jackson使用方法: 1.加入jar包: jackson-annotations-2.2.2.jar jackson-core-2.2.2.jar jackson-databind-2.2.2.j ...
- 'React/RCTBundleURLProvider.h' file not found
'React/RCTBundleURLProvider.h' file not found 新建RN项目时在iOS端用xcode跑时有时会遇到 'React/RCTBundleURLProvider. ...
- Python:数字的格式化输出
>>> 'The value is {:0,.2f}'.format(x) 'The value is 1,234.57' 需要将数字格式化后输出,并控制数字的位数.对齐.千位分隔符 ...
- Python虚拟环境的安装
1.升级python包管理工具pip pip install --upgrade pip 备注:当你想升级一个包的时候“pip install --upgrade”包名 2.python虚拟环境的安装 ...
- 前端学习笔记之CSS网页布局
CSS网页布局 阅读目录 一 网页布局方式 二 标准流 三 浮动流 四 定位流 一 网页布局方式 #1.什么是网页布局方式 布局可以理解为排版,我们所熟知的文本编辑类工具都有自己的排版方式,比如w ...