poj 2823 单调队列 (求特定长度区间的最大最小值)
来源:互联网 发布:学生网络辱骂老师 编辑:程序博客网 时间:2024/06/06 11:45
#include<cstdio>//注意要把数组放在主函数前面,才能开到1000010 如果放在主函数里会 running error#define MAX_N 1000010 using namespace std;int a[MAX_N],b[MAX_N],deq[MAX_N],c[MAX_N],deq1[MAX_N];int main(){int n,k,s,t,i;scanf("%d%d",&n,&k);for(i=0;i<n;i++)scanf("%d",&a[i]);s=0;t=0;for(i=0;i<n;i++){while(s<t&&a[deq[t-1]]>=a[i])t--;deq[t++]=i;if(i-k+1>=0){b[i-k+1]=a[deq[s]];if(deq[s]==i-k+1)s++;}}s=0;t=0;for(i=0;i<n;i++){while(s<t&&a[deq1[t-1]]<=a[i])t--;deq1[t++]=i;if(i-k+1>=0){c[i-k+1]=a[deq1[s]];if(deq1[s]==i-k+1)s++;}}for(i=0;i<=n-k;i++)printf("%d ",b[i]);printf("\n");for(i=0;i<=n-k;i++)printf("%d ",c[i]);}
0 0
- poj 2823 单调队列 (求特定长度区间的最大最小值)
- hdu5289RMQ求区间最大最小值和单调队列维护区间最大最小值
- poj 2823 线段树 求固定区间的最大最小值
- 【HDU3530】【单调队列(双)】Subsequence 【长度为n的数列,求最长子区间的长度,使得区间的最大值与最小值的差满足一个范围】
- Sliding Window(单调队列维护或线段树求区间最大最小值)
- hdu3415 单调队列求区间最大和
- CF Mike and Feet (求连续区间内长度为i的最小值)单调栈
- 双端队列(单调队列)POJ 2823 定长区间最小值(RMQ也可以)
- poj 2823 Sliding Window (线段树 求固定区间的最大最小值 )
- 【hdu3415】【单调队列 】Max Sum of Max-K-sub-sequence【求长度不大于k的区间最大子串和】
- HDU 3530 Subsequence(区间最值差>=m且<=k的最大长度、双单调队列)
- HDU 5749 Colmerauer(单调栈或单调队列求解固定区间最大或最小值)
- poj--3264Balanced Lineup+ST算法求区间最大最小值
- nefu 1268 区间最小值求和(单调队列)
- POJ 题目2823 Sliding Window(单调队列求定长区间最大值)
- POJ 3264 区间最大最小值
- poj 2955 Brackets(区间DP,经典问题)求有规律的括号的最大长度
- Oracle求连续区间内的最大最小值
- javascript DOM节点、元素
- MySQL 多表关联更新及删除
- 4.6第七周
- Ubuntu Numix 图标安装
- POJ
- poj 2823 单调队列 (求特定长度区间的最大最小值)
- 基于apache的tomcat负载均衡和集群配置
- leetcode 328 Odd Even Linked List C++
- poller采集服务器的nagios无法启动了
- popToViewController的使用
- 题目1031:xxx定律
- 51nod 1081子串求和
- 算法提高 素数求和
- Linux SWAP 深度解读 [收藏]