纯板子题,入队时保证单调性,即单调栈,出队保证题目条件,本题即窗口长度k,在入队出队时都可以维护信息

const int maxm = 1e6+;

int buf[maxm], maxq[maxm], minq[maxm], ans1[maxm], ans2[maxm];

int main() {
ios::sync_with_stdio(false), cin.tie();
int n, k, l1 = , r1 = -, l2 = , r2 = -;
cin >> n >> k;
for(int i = ; i < n; ++i)
cin >> buf[i];
for(int i = ; i < n; ++i) {
while(l1 <= r1 && minq[l1] <= i-k) l1++;
while(l2 <= r2 && maxq[l2] <= i-k) l2++;
while(l1 <= r1 && buf[minq[r1]] >= buf[i]) r1--;
minq[++r1] = i;
while(l2 <= r2 && buf[maxq[r2]] <= buf[i]) r2--;
maxq[++r2] = i;
if(i >= k-) ans1[i] = buf[minq[l1]], ans2[i] = buf[maxq[l2]];
}
for(int i = k-; i < n; ++i) {
if(i!=k-) cout << " ";
cout << ans1[i];
}
cout << "\n";
for(int i = k-; i < n; ++i) {
if(i!=k-) cout << " ";
cout << ans2[i];
}
cout << "\n"; return ;
}

最新文章

  1. jquery实现表格动态添加
  2. import pysam 出错解决办法
  3. IntelliJ IDEA Cannot find declaration to go to
  4. fpmmm(mpm)监控mysql模块安装
  5. vim环境设置和自动对齐
  6. 关于数组和List之间相互转换的方法
  7. underscore demo
  8. 【剑指offer】员工年龄排序
  9. B树的查找、插入、删除(附源代码)
  10. Ubuntu 16.04系统下安装RapidSVN版本控制器及配置diff,editor,merge和exploer工具
  11. javaWeb中URLEncoder.encode空格问题
  12. 贪心算法----区间覆盖问题(POJ2376)
  13. Confluence 6 升级完成后的检查
  14. Robot Framework - 4 - 创建和扩展测试库的示例
  15. 利用git 进行多人协作开发
  16. log4j的一些参数说明
  17. 有关https有的网站可以访问有的访问不了的问题
  18. SACD ISO镜像中提取DSDIFF(DFF)、DSF文件
  19. chattr与lsattr命令
  20. Spring Boot干货系列:(七)默认日志框架配置

热门文章

  1. HDU1540 Turnal Warfare
  2. Python与线性代数——Numpy中的matrix()和array()的区别
  3. 区分移动端和pc端
  4. 栈的python实现
  5. CSP2019 滚粗记
  6. Hibernate笔记二
  7. 吴裕雄--天生自然ORACLE数据库学习笔记:管理表空间和数据文件
  8. 《SQL 进阶教程》 查找局部不一致的数据
  9. 第1节 Scala基础语法:1、2、概述,什么是scala
  10. Linux命令:iostat命令