2823

思路:

  单调队列;

  以前遇到都是用线段树水过;

  现在为了优化dp不得不学习单调队列了;

代码:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std; #define maxn 1000005
struct QueueType {
int x,dis;
};
struct QueueType mique[maxn],maque[maxn],ai[maxn]; int n,k,mihead,mitail=-,mahead,matail=-; inline void in(int &now)
{
int if_z=;now=;
char Cget=getchar();
while(Cget>''||Cget<'')
{
if(Cget=='-') if_z=-;
Cget=getchar();
}
while(Cget>=''&&Cget<='')
{
now=now*+Cget-'';
Cget=getchar();
}
now*=if_z;
} int main()
{
in(n),in(k);
for(int i=;i<=n;i++) in(ai[i].dis),ai[i].x=i;
for(int i=;i<k;i++)
{
mique[++mitail]=ai[i];
while(mitail>mihead)
{
if(mique[mitail].dis<=mique[mitail-].dis) mique[mitail-]=mique[mitail--];
else break;
}
maque[++matail]=ai[i];
while(matail>mahead)
{
if(maque[matail].dis>=maque[matail-].dis) maque[matail-]=maque[matail--];
else break;
}
}
for(int i=k;i<=n;i++)
{
mique[++mitail]=ai[i];
while(mitail>mihead)
{
if(mique[mitail].dis<=mique[mitail-].dis) mique[mitail-]=mique[mitail--];
else break;
}
printf("%d ",mique[mihead].dis);
if(mique[mihead].x==i-k+) mihead++;
}
printf("\n");
for(int i=k;i<=n;i++)
{
maque[++matail]=ai[i];
while(matail>mahead)
{
if(maque[matail].dis>=maque[matail-].dis) maque[matail-]=maque[matail--];
else break;
}
printf("%d ",maque[mahead].dis);
if(maque[mahead].x==i-k+) mahead++;
}
return ;
}

最新文章

  1. asp.net MVC4 表单 - CheckBox兴趣爱好
  2. 如何学习JavaScript
  3. 在Navicat for MySQL中打开视图时,提示视图没有主键的问题
  4. Scrum Meeting 6-20151208
  5. 适用于jquery1.11.1的ajaxfileupload.js
  6. newinstance和new有什么区别
  7. uva 1629
  8. C#dll中无法找到c++dll中函数的入口
  9. Max Sub-matrix
  10. 遍历Dataset并输出数据实例
  11. C#中volatile的用法
  12. 总结&amp;计划
  13. Trufun云端建模平台之云端UML工具发布
  14. ggplot2 scale相关设置2—时间设置
  15. Top 10 JavaScript编辑器,你在用哪个?
  16. Django入门二之模板语法
  17. 末学者笔记--Centos7系统部署cobbler批量安装系统
  18. 千行代码入门Python
  19. springboot 启动脚本
  20. MVVM设计模式和在WPF中的实现(四) 事件绑定

热门文章

  1. R语言中的机器学习包
  2. python 读取数据库中文内容显示一堆问号
  3. Python全栈工程师(装饰器、模块)
  4. ExtJs学习之MessAgeBox的使用
  5. 台州学院maximum cow训练记录
  6. 【Android】实验3 颜色、字符串资源的使用【提交截止时间:2016.4.1】
  7. Win10 Ubuntu18.04 编译安装 nignx
  8. 2013 ACMICPC 杭州现场赛 I题
  9. 解决某些PC站在手机端宽度显示不正常的问题
  10. npm下载包失败的几个原因