poj 2823 单调队列裸题
来源:互联网 发布:画漫画软件sai 编辑:程序博客网 时间:2024/05/21 00:20
两个队列分别维持最大和最小
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
struct node
{
int mi,ma;
}num[1000010];
int sax[1000010],sin[1000010];
int ida[1000010],idi[1000010];
int main()
{
int n,m,i,j,k,a;
while(~scanf("%d%d",&n,&k))
{
int fax=0,tax=0;
int fin=0,tin=0;
int j=0;
for(i=1;i<=n;i++)
{
scanf("%d",&a);
while(fax<tax&&sax[tax]<a) tax--;
sax[++tax]=a;
ida[tax]=i;
while(fin<tin&&sin[tin]>a) tin--;
sin[++tin]=a;
idi[tin]=i;
while(fax<tax&&ida[fax+1]<=i-k)
fax++;
while(fin<tin&&idi[fin+1]<=i-k)
fin++;
if(i>=k)
{
num[++j].mi=sin[fin+1];
num[j].ma=sax[fax+1];
}
}
for(i=1;i<=j;i++)
{
if(i!=1) printf(" ");
printf("%d",num[i].mi);
}
printf("\n");
for(i=1;i<=j;i++)
{
if(i!=1) printf(" ");
printf("%d",num[i].ma);
}
printf("\n");
}
return 0;
}
- Poj 2823 (单调队列裸题)
- poj 2823 单调队列裸题
- Poj 2823 (单调队列)
- poj 2823【单调队列】
- POJ 2823 单调队列
- POJ-2823单调队列
- POJ 2823 单调队列
- poj 2823 单调队列
- 单调队列 POJ 2823
- poj 2823 单调队列
- POJ 2823 单调队列
- poj 2823 单调队列
- poj 2823 单调队列
- POJ 2823 单调队列
- poj 2823 单调队列
- POJ 2823 单调队列
- POJ 2823 //单调队列
- POJ 2823 单调队列
- TOMCAT部署web工程方式
- ubuntu amd驱动
- 配置ip地址四种方法,方便学习linux的朋友
- Context与SQLiteDatabase的方法openOrCreateDatabase的区别 (context、SQLiteOpenHelper)
- 操作系统 内存地址(逻辑地址、线性地址、物理地址)概念
- poj 2823 单调队列裸题
- js常见问题
- cocos2d-x 3.x中编译apk时显示“CCRANDOM_0_1 was not declared in scope”
- [C++]LeetCode: 95 Binary Tree Preorder Traversal (先序遍历)
- 用两种方式打印输出水仙花数:Math.pow(parm,n)和parm*parm*parm
- Android字体工作原理
- 【微机原理】-微型计算机概述
- swift与objectc混编 module-Swift.h file not found
- 实模式和保护模式