博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 2823 Sliding Window (单调队列)
阅读量:7072 次
发布时间:2019-06-28

本文共 1059 字,大约阅读时间需要 3 分钟。

纯粹的单调队列练习题,用了一下,结果发现还不如scanf快...

话说前段时间搞单调优化的时候,就是有点卡在单调队列上了,当时真没整明白资料里说的到底在维护什么...今天费老传了DP资料(完整版...)才算真搞懂。唉,浪费了那么多激情... 

为DP的单调优化做准备吧,明天开始搞DP了,不能再缩了... 

code:

 

#include<cstdio>
int data[
1000005] ;
int queue[
1000005] ;
int n, k ;
void getMin(){
    
int h, r ;
    h =
r = 0 ;
    queue[
0] = 
0 ;
    
for(
int i=
0; i<n; i++){
        
if(i-queue[h]==k)   h ++ ;
        
if(r==h-
1||data[i]>data[queue[r]]){
            r ++ ;
            queue[r] = i ;
        }
        
else{
            
while(r>=h&&data[i]<=data[queue[r]]){
                queue[r] = i ;
                r -- ;
            }
            r ++ ;
        }
        
if(i>=k-
1)    printf(
"
%d 
", data[queue[h]]) ;
    }
    printf(
"
\n
") ;
}
void getMax(){
    
int h, r ;
    h = r = 
0 ;
    queue[
0] = 
0 ;
    
for(
int i=
0; i<n; i++){
        
if(i-queue[h]==k)   h ++ ;
        
if(r==h-
1||data[i]<data[queue[r]]){
            r ++ ;
            queue[r] = i ;
        }
        
else{
            
while(r>=h&&data[i]>=data[queue[r]]){
                queue[r] = i ;
                r -- ;
            }
            r ++ ;
        }
        
if(i>=k-
1)    printf(
"
%d 
", data[queue[h]]) ;
    }
    printf(
"
\n
") ;
}
int main(){
    
while(~scanf(
"
%d%d
", &n, &k)){
        
for(
int i=
0; i<n; i++)
            scanf(
"
%d
", &data[i]) ;
        getMin() ;
        getMax() ;
    }
    
return 
0 ;
}

 

转载于:https://www.cnblogs.com/xiaolongchase/archive/2012/02/08/2342126.html

你可能感兴趣的文章
Layui表格编辑【不依赖Layui的动态table加载】
查看>>
HDU2087剪花布条(KMP)
查看>>
NOIP2018普及初赛解析
查看>>
jQuery中$.extend(true,object1, object2);深拷贝对象
查看>>
圆角和倒角
查看>>
自然语言处理之维特比算法
查看>>
ubuntu12 is not in the sudoers file
查看>>
c# 生成的没用文件
查看>>
Django文件上传
查看>>
zoj 3627(贪心)
查看>>
JS数组
查看>>
ztree复选框
查看>>
[BZOJ1030][JSOI2007]文本生成器(AC自动机+DP)
查看>>
如何判断元素是否在当前文档显示区内?
查看>>
ICMP协议
查看>>
IOS 5 ARC机制 (四)
查看>>
生成二维码
查看>>
网页打开时左上角带的小图标
查看>>
java中json数据生成和解析(复杂对象演示)
查看>>
二分 三分搜索
查看>>