POJ 2823(双端队列)
来源:互联网 发布:文明6 mac下载 编辑:程序博客网 时间:2024/05/01 11:59
这题考双端队列……好偏门的数据结构……
Program c;const maxn=1000000;type node=record num,d:longint; end; douq=record d:array[1..maxn] of node; l,r:longint; end;var n,k,i,j:longint; a:array[1..maxn] of longint; ans1,ans2:array[1..maxn] of longint; minq,maxq:douq;procedure push(var q:douq;num2,d2:longint);begin with q do begin inc(r); d[q.r].num:=num2; d[q.r].d:=d2; end;end;procedure popl(var q:douq;i:longint);begin with q do begin if d[l].num=i then inc(l); end;end;procedure popr(up,i:longint);var j:longint;begin if up=1 then begin with minq do begin while (l<r) and (d[r].d>i) do dec(r); if l=r then if d[r].d>i then dec(r); end; end else begin with maxq do begin while (l<r) and (d[r].d<i) do dec(r); if l=r then if d[r].d<i then dec(r); end; end;end;begin read(n,k); for i:=1 to n do read(a[i]); fillchar(minq,sizeof(minq),0); minq.l:=1; fillchar(maxq,sizeof(maxq),0); maxq.l:=1; if k=1 then begin for i:=1 to n-1 do write(a[i],' '); writeln(a[n]); for i:=1 to n-1 do write(a[i],' '); writeln(a[n]); end else begin for i:=1 to k do begin popr(1,a[i]); push(minq,i,a[i]); popr(0,a[i]); push(maxq,i,a[i]); end; ans1[1]:=minq.d[minq.l].d; ans2[1]:=maxq.d[maxq.l].d; for i:=k+1 to n do begin popl(minq,i-k); popl(maxq,i-k); popr(1,a[i]); push(minq,i,a[i]); popr(0,a[i]); push(maxq,i,a[i]); ans1[i-k+1]:=minq.d[minq.l].d; ans2[i-k+1]:=maxq.d[maxq.l].d; end; for i:=1 to n-k do write(ans1[i],' '); writeln(ans1[n-k+1]); for i:=1 to n-k do write(ans2[i],' '); writeln(ans2[n-k+1]); end;end.
- POJ 2823(双端队列)
- POJ-2823--Sliding Window--双端队列实现单调队列
- 双端队列(单调队列)POJ 2823 定长区间最小值(RMQ也可以)
- poj 2823 (单调队列)
- poj 2823(单调队列)
- poj 2823(单调队列)
- POJ 2823(单调队列)
- POJ 2823(单调队列)
- POJ 2823 Sliding Window 双端队列入门题
- POJ 3159 Candies 差分约束系统(这题卡SPFA的队列的双端队列)
- 【POJ 2823】Sliding Window 双(单)端(调)队列 学习笔记~~~
- poj 2823 Sliding Window(单调队列)
- POJ 2823 Sliding Window(单调队列)
- POJ 2823 Sliding Window(单调队列)
- Poj 2823 (单调队列裸题)
- poj 2823 Sliding Window(单调队列)
- poj 2823 Sliding Window ( 单调队列 )
- POJ 2823 Sliding Window (单调队列)
- 网页显示高亮代码简易方法
- Delphi TList使用
- rsyslog配置动态日志文件-template补丁
- Android:JNI Local Reference Changes in ICS
- C基础知识--指针类型的常量
- POJ 2823(双端队列)
- sscanf用法
- python2.7.1编码问题
- VMware Linux安装RAC出现Failure at final check of Oracle CRS stack 10的解决
- 【Android】屏幕适配——屏幕规格与分辨率对照表
- Fermat素性测试, Miller-Rabin素性测试
- C语言代码优化
- SICP习题解答2.1-2.6
- IOS开发中的UIScreen、UIView、UIWindow和UIViewController