caioj 1172 poj 2823 单调队列过渡题
给定一个n个数的数列,从左至右输出每个长度为m的数列段内的最大数。
输入:第一行两个整数n和m( 1<= n <= 20 0000,m<=n)。下来给出n个整数。
输出:一行一个整数,表示每连续m个数的最大值。
样例输入:
8 3
1 3 -1 -3 5 3 6 7
样例输出:
3
3
5
5
6
7
维护一个单调队列,列内严格递减。若是首端元素已经脱离当前M个元素的区间,则去除。若是新元素比队尾元素严格小,直接入队,否则元素出队至合格后,新元素入队。比较模板了:
#include <bits/stdc++.h>
using namespace std; #define ll long long
#define pii pair<int,int>
#define rep(i,a,b) for(int i=(a);i<(b);++i)
#define pb push_back
#define fi first
#define se second const double eps=1e-, PI=acos(-1.0f);
const int inf=0x3f3f3f3f;
const int maxN=2e5+;
int N, M, K, T;
int g[maxN];
deque<pii> dq; int main() {
#ifndef ONLINE_JUDGE
freopen("data.in", "r", stdin);
#endif
scanf("%d%d", &N, &M);
for (int i = ; i <= N; ++i)
scanf("%d", &g[i]);
for (int i = ; i <= N; ++i) {
while (dq.size() && dq.back().fi <= g[i])
dq.pop_back();
dq.push_back(pii(g[i], i));
while (dq.back().se - dq.front().se + > M)
dq.pop_front();
if (i >= M)
printf("%d\n", dq.front().fi);
}
return ;
}
用数组实现deque,得交c++,G++会TLE
#include <stdio.h>
#define FOR(i,a,b) for(int i=(a);i<=(b);++i)
#define maxN 1000005
int n, k, t, ab[maxN], as[maxN];
int lb, rb, ls, rs;
struct node{int v, i;} a, B[maxN], S[maxN]; int main () {
//freopen("data.in", "r", stdin);
scanf("%d%d", &n, &k);
lb = rb = ls = rs = ;
FOR(i, , n) {
scanf("%d", &a.v), a.i = i;
while (ls < rs && S[rs - ].v >= a.v) rs--;
S[rs++] = a;
if (S[ls].i <= i - k) ++ls;
if (i >= k) ab[i] = S[ls].v; while (lb < rb && B[rb - ].v <= a.v) rb--;
B[rb++] = a;
if (B[lb].i <= i - k) ++lb;
if (i >= k) as[i] = B[lb].v;
}
FOR(i, k, n) printf(i == k ? "" : " "), printf("%d", ab[i]);
puts("");
FOR(i, k, n) printf(i == k ? "" : " "), printf("%d", as[i]);
return ;
}
caioj 1172 poj 2823 单调队列过渡题的更多相关文章
- Sliding Window POJ - 2823 单调队列模板题
Sliding Window POJ - 2823 单调队列模板题 题意 给出一个数列 并且给出一个数m 问每个连续的m中的最小\最大值是多少,并输出 思路 使用单调队列来写,拿最小值来举例 要求区间 ...
- poj 2823单调队列模板题
#include<stdio.h>//每次要吧生命值长的加入,吧生命用光的舍弃 #define N 1100000 int getmin[N],getmax[N],num[N],n,k, ...
- POJ 2823 单调队列入门水题
最最基础的单调队列题目.一个单增一个单减.还是可以借此好好理解一下单调队列的. #include <stdio.h> #include <string.h> #include ...
- poj 2823 单调队列
思路:裸的单调队列. #include<iostream> #include<cstring> #include<cstdio> #include<algor ...
- POJ 2823 Sliding Window (模板题)【单调队列】
<题目链接> <转载于>>> > 题目大意: 给你一段序列和一个长为k的窗口,这个窗口从最左边逐渐向右滑,直到滑到最右边,问你,该窗口在滑动的过程中,最大值和 ...
- luoguP1886 滑动窗口(单调队列模板题)
题目链接:https://www.luogu.org/problem/P1886#submit 题意:给定n个数,求大小为k的滑动窗口中最小值和最大值. 思路:单调队列模板题. AC代码: #incl ...
- POJ 2823 Sliding Window(单调队列入门题)
Sliding Window Time Limit: 12000MS Memory Limit: 65536K Total Submissions: 67218 Accepted: 190 ...
- POJ 2838 单调队列
Sliding Window Time Limit: 12000MS Memory Limit: 65536K Total Submissions: 55309 Accepted: 15911 ...
- 刷题向》POJ2823 单调队列裸题(<不会做,请自裁>系列)
最近BZOJ炸了,而我的博客上又更新了一些基本知识,所以这里刷一些裸题,用以丰富知识性博客 POJ2823 滑动的窗口 这是一道经典的单调队题,我记得我刚学的时候就是用这道题作为单调队列的例题,算 ...
随机推荐
- 【LeetCode题解】206_反转链表(Reverse-Linked-List)
目录 描述 解法一:迭代 思路 Java 实现 Python 实现 复杂度分析 解法二:递归 思路 Java 实现 Python 实现 复杂度分析 更多 LeetCode 题解笔记可以访问我的 git ...
- 修改Tomcat窗口名称
做java开发,tomcat可以说是最常用的web容器.但是当开启多个tomcat容器之后,就不太容器轻松区别哪了个dos窗口是跑的哪个web应用了.此时可以给每一个窗口命名: 具体办法是:修改% ...
- How to update Ionic cli and libraries
1)npm outdated 2)手动修改你项目的package.json文件,找对应的版本号 3)npm update 重新安装包就可以了. 转自:http://devfanaticblog.com ...
- DotNetBar 使用笔记
1.删除表格的某一行数据,必须是VirtualMode = false 的时候才生效,不然就只是灰色 SuperDBG_Right.PrimaryGrid.SetDeletedRows(SuperD ...
- ObjectMapper将json转对象报错处理
在使用ObjectMapper将json转对象,调用mapper.readValue(jsonStr, XwjUser.class)时,报如下错: com.fasterxml.jackson.data ...
- 主打安全 阿里巴巴联合公安部打造PMOS
4月9日,CITE2015(第三届中国电子信息博览会)在深圳会展中心举行,大会主要以“智能新时代.数字新生活”为主题.说道这,就不得不提国内互联网巨头阿里巴巴.大会中阿里巴巴不仅带来了早前马云曾经在德 ...
- MySQL5:触发器
什么是触发器 MySQL的触发器(trigger)和存储过程一样,都是嵌入到MySQL中的 一段程序.触发器是由事件来触发某个操作,这些事件包括INSERT.UPDATE和DELETE语句.如果定义了 ...
- HNCU专题训练_线段树(1)
1.内存控制2.敌兵布阵4.广告牌5.区间第k大数(模板题)6.just a Hook7.I Hate It8.动态的最长递增子序列(区间更新题)9.图灵树10.覆盖的面积14.买票问题16.村庄问题 ...
- CSS3 @font-face实现颜色大小可控的三角效果——张鑫旭
一.我之前介绍过的三角实现效果回顾 这里所说的三角效果之等腰直角三角形效果(等边三角形有现成字符实现,没什么好说的:还有图片实现三角众人皆知,不予以说明): 1. 字符实现三角效果关于字符实现三角我早 ...
- Debian Gun/linux基本用法
添加软件源:vim /etc/apt/sources.list 在文本中添加如下内容:deb http://mirrors.163.com/debian/ stretch main non-free ...