【洛谷 P1638】 【单调队列】 逛画展

题目


解题思路

先求出最前面囊括所有画的位置
然后如果左边界的画不止存在一次,左边界右移
不断扩展右边界,求取答案


代码

#include<iostream>
#include<cstdio>
using namespace std;
int n,m,se,l,r=1000010,a[1001000],p[2100],q[1000100],h=1,t;
int main()
{scanf("%d%d",&n,&m);se=m;for (int i=1;i<=n;i++)scanf("%d",&a[i]);for (int i=1;i<=n;i++){if (!p[a[i]]){p[a[i]]++;se--;} else p[a[i]]++;q[++t]=i;  if (se==0){ while (h<=t&&p[a[q[h]]]-1>0) p[a[q[h]]]--,h++; if (r-l+1>q[t]-q[h]+1){l=q[h];r=q[t];}}}printf("%d %d",l,r);return 0;
}

【洛谷 P1638】 【单调队列】 逛画展相关推荐

  1. 洛谷 P1638 逛画展

    洛谷 P1638 逛画展 题目链接 题目描述 博览馆正在展出由世上最佳的 M 位画家所画的图画. wangjy想到博览馆去看这几位大师的作品. 可是,那里的博览馆有一个很奇怪的规定,就是在购买门票时必 ...

  2. 洛谷 [P1638 逛画展] (尺取法)

    Link https://www.luogu.org/problemnew/show/P1638 Description  博览馆正在展出由世上最佳的 M 位画家所画的图画.wangjy想到博览馆去看 ...

  3. 洛谷P1638 逛画展

    题目描述 博览馆正在展出由世上最佳的 m 位画家所画的图画. 游客在购买门票时必须说明两个数字,a 和 b,代表他要看展览中的第 a 幅至第 b 幅画(包含 a,b)之间的所有图画,而门票的价钱就是一 ...

  4. 洛谷P1638 逛画展-最简单的双指针做法

    思路:定义双指针x和y代表[x,y]区间,初始化x=y=0开始遍历,刚开始时一直增加y直到包含了所有作家的画,然后就从左边x开始删区间有重复作家的画就行.注意不要把任何一个作家的画删到0!! 代码如下 ...

  5. 【训练题27:单调队列实现RMQ(附带详细说明)】 H :圣诞糖果 | 吉首大学第十届“新星杯”

    H :圣诞糖果 | 吉首大学第十届"新星杯" 题外话 差一题就能拿一等奖了,有点残念 当时试过了线段树/树状数组/优先队列写法,但是都没过 这题网上我没找到题解,估计也只能用单调队 ...

  6. 洛谷or牛客数据结构+算法

    栈思想:先进后出 tips:栈里能放下标就放下标 (牛客)小c的计事本(直接用stack可以简化代码,且不会被自己绕晕,当时没意识到) (牛客)吐泡泡(没意识到用栈),(牛客)好串 1.后缀表达式(栈 ...

  7. 洛谷 - P1886 滑动窗口(单调队列/线段树)

    题目链接:点击查看 题目大意:给出一个由n个数构成的序列,再给出一个长度为k的窗口,这个窗口从第一个下标开始一直向后移动,每次移动一个单位,每次移动询问一次该窗口中的最大值和最小值,最后输出答案 题目 ...

  8. [USACO18JAN]Lifeguards P 洛谷黑题,单调队列优化DP

    传送门:戳我 这道题有两个版本,S和P,S是K等于1的情况,显然可以用线段树水过. P版本就难了很多,洛谷黑题(NOI/NOI+/CTSC),嘿嘿. 我自己也不是很理解,照着题解写了一遍,然后悟到了一 ...

  9. 【Leetcode单调队列】- 洛谷P1714切蛋糕

    单调队列 解决该类问题的重点维护一个队列,从队首到队尾是递减的,队首是最大的.队尾是最小的. 队尾接受值,队首排出值. Java实现用双端队列,前面接收值,后面排出来值. 这类题目往往是跟滑动窗口一起 ...

最新文章

  1. IE6-IE9兼容性问题列表及解决办法_补遗漏之一:button的type默认值改变为submit了。
  2. 区块链项目-Lisk
  3. ABAP:DYNP_VALUES_READ读取屏幕字段值
  4. java servlet上传centos服务器
  5. ai作文批改_好未来:AI智能批改中英文作文为老师“减负”
  6. 带你自学Python系列(十五):Python中类的用法(一)
  7. windows配置pip加速器
  8. linux——18数据库SQLite3
  9. 从有序数组中查找数字的4种方法/二分查找/二分查找的函数递归/一一对比/一一对比的递归
  10. Unity 知识点复习
  11. php里用钢笔画曲线,ps钢笔工具组怎么用 ps钢笔工具使用方法
  12. ARM Neon Intrinsics 学习指北:从入门、进阶到学个通透
  13. 【爬虫实战】12306购票抓包分析以及任务分解
  14. 股神巴菲特名言及股神巴菲特选股技巧有哪些
  15. oracle sql '[[alpha]]',Alpha865qqz.id 加密数据库恢复
  16. 服务搭建篇(七) Elasticsearch单节点部署以及多节点集群部署
  17. imu姿态解算+卡尔曼滤波融合JAVA版(此版本卡拉曼滤波奇点有错误)
  18. 紫外线测试仪软件,紫外荧光老化测试仪
  19. Kubernetes存储之Heketi管理GlusterFS
  20. python的0x55555555和0xaaaaaaaa

热门文章

  1. H5播放SVGA动画
  2. 零障碍合并两个模型,大型ResNet模型线性连接只需几秒,神经网络启发性新研究...
  3. VS Code注释快捷键
  4. python并发编程:协程asyncio、多线程threading、多进程multiprocessing
  5. python CAD图形合并
  6. linux 解压文件乱码,云服务器:解决linux下zip文件解压乱码问题
  7. 《乘风者周刊》 专家博主:琦彦 ——一个半路出家的文科生如何逆袭成技术大咖
  8. 个人常用提高办公效率软件
  9. python 老照片修复软件_老照片修复还原
  10. 【精】LintCode领扣算法问题答案:1086. 重复字符串匹配