题目链接:http://poj.org/problem?id=2823

用RMQ超时了,我想应该是不会的,看discuss说,之前RMQ过了。

维护两个单调队列。

单调递减的队列,每插入一个时:

超过单调队列长度,左移头指针。

第一个或者符合条件,直接加到后面。

否则,一直退;

 #include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring> using namespace std; const int N = + ; int n,m;
int a[N],q[N]; void MinQ()
{
int h=,t=;
q[] = ;
for(int i=;i<=n;i++) {
if(i-q[h]==m) h++; if(t==h-||a[i]>a[q[t]]) {
t++;
q[t] = i;
}
else {
while(t>=h&&a[i]<=a[q[t]])
{
q[t] = i;
t--;
}
t++;
}
if(i>=m) printf("%d ",a[q[h]]); }
puts("");
} void MaxQ()
{
int h=,t=;
q[] = ;
for(int i=;i<=n;i++) { if(i-q[h]==m) h++; if(t==h-||a[i]<a[q[t]]) {
t++;
q[t] = i;
}
else {
while(t>=h&&a[i]>=a[q[t]])
{
q[t] = i;
t--;
}
t++; }
if(i>=m) printf("%d ",a[q[h]]); }
} int main()
{
cin>>n>>m;
for(int i=;i<=n;i++) {
scanf("%d",&a[i]);
} MinQ();
MaxQ(); return ;
}

题目链接:http://acm.fzu.edu.cn/problem.php?pid=1894

和单调递增队列一样。

 /*
RunID: 727738
UserID: TreeDream
Submit time: 2017-02-16 00:04:08
Language: C++
Length: 1167 Bytes.
Result: Accepted
*/ //#include <bits/stdc++.h>
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring> using namespace std; const int maxn = + ;
int a[maxn];
int q[maxn]; int main()
{
//freopen("in.txt","r",stdin);
int t;
scanf("%d",&t); while(t--)
{
char op[];
scanf("%s",op); int head = ,tail = ; q[] = -; int i=,j=;
char cmd[],name[];
int len = ; while(scanf("%s",cmd))
{
if(strcmp(cmd,"END")==) break; if(cmd[]=='C') //插入是有条件的
{
scanf("%s",name);
len ++;
scanf("%d",&a[len]);
while(head<=tail&&a[q[tail]]<=a[len])
tail--;
q[++tail] = len;
} else if(cmd[]=='G')
{
while(head<=tail&&q[head]<=j)
head++;
j++;
}
else printf("%d\n",head>tail?-:a[q[head]]);
}
} return ;
}

参考:http://blog.csdn.net/acdreamers/article/details/20911981

单调队列 poj2823,fzu1894的更多相关文章

  1. POJ2823 Sliding Window (单调队列)

    POJ2823 Sliding Window Time Limit: 12000MS   Memory Limit: 65536K Total Submissions: 38342   Accepte ...

  2. poj2823:单调队列入门题

    今天学习了一下单调队列这种数据结构,思想不是很难 参考资料:http://www.cnblogs.com/Jason-Damon/archive/2012/04/19/2457889.html 然后自 ...

  3. poj2823 单调队列初步

    什么是单调队列:头元素一直是队列当中的最大值,队列中的值按照递减顺序排列,可以从末尾插入一个元素,或从两段删除元素 1.插入元素,为了保证队列的单调性(这里假设为递减性),在插入元素v时要将对位的元素 ...

  4. 刷题向》POJ2823 单调队列裸题(<不会做,请自裁>系列)

    最近BZOJ炸了,而我的博客上又更新了一些基本知识,所以这里刷一些裸题,用以丰富知识性博客 POJ2823   滑动的窗口 这是一道经典的单调队题,我记得我刚学的时候就是用这道题作为单调队列的例题,算 ...

  5. poj2823/hdu3415 - 数据结构 单调队列

    poj2823 题目链接 长度为N的数组,求宽度k的滑动窗口在数组上滑动时窗口内的最大值或最小值 如果用单调队列做,求最小值时,队列应该严格递增的.所以插入时,队尾大于等于插入值的元素都应被舍弃,因为 ...

  6. POJ2823 单调队列

    POJ2823 http://poj.org/problem?id=2823 最基础的单调队列,说是数据结构,其实就是一种更新数组数据的方法. 之前还准备用deque,超时了,直接head,tail快 ...

  7. FZU1894 单调队列

    S - 1019 Time Limit:1500MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Sta ...

  8. POJ2823 Sliding Window(单调队列)

    题目要输出一个序列各个长度k的连续子序列的最大值最小值. 多次RMQ的算法也是能过的,不过单调队列O(n). 这题,队列存元素值以及元素下标,队尾出队维护单调性然后入队,队首出队保持新元素下标与队首元 ...

  9. 双端队列(单调队列)poj2823 区间最小值(RMQ也可以)

    Sliding Window Time Limit: 12000MS   Memory Limit: 65536K Total Submissions: 41844   Accepted: 12384 ...

随机推荐

  1. eclipse安装阿里规范模板

    https://github.com/alibaba/p3c/tree/master/p3c-formatter 1.代码模板(含注释等) 2.代码格式化

  2. hbase数据库操作

    .实验内容与完成情况:(实验具体步骤和实验截图说明) (一)编程实现以下指定功能,并用 Hadoop 提供的 HBase Shell 命令完成相同任务: () 列出 HBase 所有的表的相关信息,例 ...

  3. 转——jdbcType与javaType的对应关系

    ------------------------------------------------ 原文:https://blog.csdn.net/haofeng82/article/details/ ...

  4. docker+ bind mount 部署复杂flask应用

    报错如下: [root@test-wenqiang flask-skeleton]# docker run -d -p 80:5000 -v $(pwd):/skeleton --name flask ...

  5. ajax动态给select赋值

    <select name="elements" id="ele" style="width: 145px;">          ...

  6. C# list.toArray list与数组的转换

    void Start () { List<int> list = new List<int>(); list.Add(); list.Add(); list.Add(); li ...

  7. xftp的使用教程

    使用xftp来上传,下载文件到linux主机 首先,我们要下载一个xftp,因为官网是英文的,还需要邮件激活,在这里我把程序下载好 此时已经安装完成,点击finish,打开软件登录SSH账号,这里以默 ...

  8. C语言测试int型数据的最大值最小值

    #include<stdio.h> int int_min(){    int i=0;    int j=0;    while(i>=j)    {        i=j;    ...

  9. Map集合练习之对字符串中字母出现的次数求和

    不多说,直接上干货! 代码需求 如有这么一个字符串 String str = "fdg+avAdc bs5dDa9c-dfs"; MapTest.java package zhou ...

  10. mysql-proxy读写分离,负载均衡

    配置mysql-proxy,创建主配置文件 cd /usr/local/mysql-proxy mkdir lua #创建脚本存放目录 mkdir logs #创建日志目录 cp share/doc/ ...