当前位置: 首页 > news >正文

Ural_1126. Magnetic Storms 单调队列

  话说单调队列!= 优先队列。可怜我捧着算导看了半天优先队列。题意读的很费劲,最后问得师兄。就是给定一个M,然后再给一个序列,求给出的序列里连续M个数中的最大值。最后把这些最大值输出,其实就是很裸的单调队列。然后开始在网上搜有关单调队列的资料,从这里http://www.felix021.com/blog/read.php?1965学会的。其实就是维持队列的单调性,别管是单调增还是单调减。队头元素永远是最列的最小值(或最大值)。

 

#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

const int N = 25005;

struct node {
int i;
int num;
}q[N];

int ans[N];

int main() {
//freopen("data.in", "r", stdin);

int m, t, k;
int f, r;
scanf("%d", &m);
scanf("%d", &t);
f = r = k = 0;
while(t != -1) {
if(f < r && q[f].i <= k - m) f++; //太旧的元素删除
while(f < r && q[r-1].num <= t) r--; //比t小的元素删除

q[r].i = k; q[r].num = t; r++; //入队列
ans[k] = q[f].num; k++;

scanf("%d", &t);
}
for(t = m-1; t < k; t++)
printf("%d\n", ans[t]);
return 0;
}

PS:开始把内存空间开小了,Crash了两次。个人感觉可以用滚动数组优化,不过没写。。。

转载于:https://www.cnblogs.com/vongang/archive/2011/11/20/2256313.html

相关文章:

  • adb shell dumpsys 命令 查看内存
  • hibernate连接Mysql中文乱码处理
  • very_confusing
  • HDOJ4070
  • apche IIS .htaccess httpd.ini Rewrite RewriteRule详解
  • 60个数据窗口技巧(转)
  • Android基础之Android硬件
  • VIM之Project 项目管理工具
  • 复制构造函数与禁止复制即函数值传递的原理
  • 基于MINA构建简单高性能的NIO应用-一个简单的例子
  • 【分析最原始验证码生成】HTTP请求处理程序
  • 托盘程序(WinForm)
  • kindle3 入手感受
  • C# 线程手册 第一章 线程定义
  • 1175 - 连连看
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • bearychat的java client
  • iOS | NSProxy
  • Java小白进阶笔记(3)-初级面向对象
  • js学习笔记
  • MySQL数据库运维之数据恢复
  • php中curl和soap方式请求服务超时问题
  • React系列之 Redux 架构模式
  • springboot_database项目介绍
  • V4L2视频输入框架概述
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 多线程事务回滚
  • 给第三方使用接口的 URL 签名实现
  • 解决iview多表头动态更改列元素发生的错误
  • 利用DataURL技术在网页上显示图片
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • ​io --- 处理流的核心工具​
  • #14vue3生成表单并跳转到外部地址的方式
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #HarmonyOS:软件安装window和mac预览Hello World
  • (2)nginx 安装、启停
  • (3)nginx 配置(nginx.conf)
  • (8)STL算法之替换
  • (Git) gitignore基础使用
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (九)c52学习之旅-定时器
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (十八)SpringBoot之发送QQ邮件
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .mysql secret在哪_MYSQL基本操作(上)
  • .net core 连接数据库,通过数据库生成Modell
  • .NET多线程执行函数
  • .NET是什么
  • .NET学习全景图
  • .NET中两种OCR方式对比
  • [C++]类和对象(中)
  • [C++]四种方式求解最大子序列求和问题