POJ 2823 单调队列入门水题
2024-08-31 04:45:45
最最基础的单调队列题目。一个单增一个单减。还是可以借此好好理解一下单调队列的。
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std; #define maxx 1000005 int num[maxx], inque[maxx], dque[maxx], maxn[maxx], minn[maxx];
int pre1, pre2, lst1, lst2;
int n, k; int main() {
while(~scanf("%d%d", &n, &k)) {
pre1 = , pre2 = , lst1 = , lst2 = ;
int cnt = ;
for (int i=; i<n; ++i) {
scanf("%d", &num[i]);
// 单增
while(pre1 < lst1 && num[inque[lst1-]] > num[i])
lst1--;
while(pre2 < lst2 && num[dque[lst2-]] < num[i])
lst2--;
inque[lst1++] = i;
dque[lst2++] = i;
while(pre1 < lst1 && i - inque[pre1] + > k)
pre1++;
while(pre2 < lst2 && i - dque[pre2] + > k)
pre2++;
if (i + >= k) {
maxn[cnt] = num[inque[pre1]];
minn[cnt] = num[dque[pre2]];
cnt++;
}
}
for (int i=; i<cnt-; ++i) {
printf("%d ", maxn[i]);
}
printf("%d\n", maxn[cnt-]);
for (int i=; i<cnt-; ++i) {
printf("%d ", minn[i]);
}
printf("%d\n", minn[cnt-]);
}
return ;
}
最新文章
- Linux 系统查看物理内存使用率的命令脚本,以百分比形式输出。
- Linux磁盘空间监控告警
- 修复 XE8 Win 平台 Firemonkey Memo 卷动后会重叠的问题
- 如何删除或重置spfile中的参数
- Python面试题库
- 【UFLDL】Exercise: Convolutional Neural Network
- 《易货》Alpha版本项目展示
- javascript默认中文(汉字/标点)长度均为1的解决
- iOS app闪退的一般原因
- ubuntu16.04安装kde桌面出错: /var/cache/apt/archives/kde-config-telepathy-accounts_4%3a15.12.3-0ubuntu1_amd64.deb
- MPICH3.2 单机编译、安装及测试
- 初窥GPFS文件系统
- 2、Libgdx配置你的开发环境(Eclipse,Intellij IDEA,NetBeans)
- MySQL8主从配置
- 关于IDEA每次修改HTML,Css等静态资源文件都需要重启的设置修改
- WEB开发库收集
- jmeter---将回应数据写入到文件
- python找包的路径(找不到自定义包的问题解决)
- 菜鸟学SSH(五)——Struts2上传文件
- POJ P3667 Hotel——solution
热门文章
- Python总结篇——知识大全
- 从零开始写JavaWeb框架(第一章节)
- 【新业务搭建】竞争情报业务规划及体系构建的思考——By Team
- 005-线程sleep、join、yield、wait、notify、notifyAll、run、start、synchronized
- SLAM FOR DUMMIES 第5-8章 中文翻译
- idea中添加模板。
- java多线程(六)
- Django小项目简单BBS论坛
- fatal error C1010: unexpected end of file while looking for precompiled header directive
- ZOJ Monthly, January 2019