P1638 逛画展(C语言)
题目描述
博览馆正在展出由世上最佳的 m 位画家所画的图画。
游客在购买门票时必须说明两个数字,a 和 b,代表他要看展览中的第 a 幅至第 b 幅画(包含 a,b)之间的所有图画,而门票的价钱就是一张图画一元。
Sept 希望入场后可以看到所有名师的图画。当然,他想最小化购买门票的价格。
请求出他购买门票时应选择的 a,b,数据保证一定有解。
若存在多组解,输出 a 最小的那组。
输入格式
第一行两个整数 n,m,分别表示博览馆内的图画总数及这些图画是由多少位名师的画所绘画的。
第二行包含 n个整数 ai,代表画第 i 幅画的名师的编号。
输出格式
一行两个整数 a,b。
输入输出样例
输入 #1
12 5 2 5 3 1 3 2 4 1 1 5 4 3
输出 #1
2 7
说明/提示
数据规模与约定
- 对于 30% 的数据,有 n≤200,m≤20。
- 对于 60%的数据,有 n≤10^5,m≤10^3。
- 对于 100% 的数据,有 1≤n≤106,1≤ai≤m≤2×10^3。
代码如下:
#include <stdio.h>
int a[1000005];
int b[2005]={0};
int main()
{int left,right;int k=0;int p=1,q=1;int len;int i;int n,m;scanf("%d%d",&n,&m);len=n;for(i=1;i<=n;i++){scanf("%d",&a[i]);}k=1;b[a[1]]++;//必先判断第一个再进入循环,理由如else处所述 while(q<=n){if(k==m){if(len>q-p){len=q-p;left=p;right=q;}b[a[p]]--;if(b[a[p]]==0){k--;}p++;}else//进else后应先q++,再判断k++,否则将出现错误,比如若是2-7符合要求,先判断k++再q++,将变成2-8; {q++;b[a[q]]++;if(b[a[q]]==1){k++;}}}printf("%d %d",left,right);}
P1638 逛画展(C语言)相关推荐
- 洛谷 P1638 逛画展
洛谷 P1638 逛画展 题目链接 题目描述 博览馆正在展出由世上最佳的 M 位画家所画的图画. wangjy想到博览馆去看这几位大师的作品. 可是,那里的博览馆有一个很奇怪的规定,就是在购买门票时必 ...
- 尺取法 P1638 逛画展
P1638 逛画展 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 其实就是求刚好拥有所有m种数字的最短区间 思路: 尺取法 当区间内数字种数刚好为m时记录一下最小区间长度 ...
- P1638 逛画展(尺取)
逛画展 - 洛谷https://www.luogu.com.cn/problem/P1638 #include <iostream> #include <cstdio> #in ...
- P1638 逛画展——尺取法的妙用
题目描述 博览馆正在展出由世上最佳的 mm 位画家所画的图画. 游客在购买门票时必须说明两个数字,aa 和 bb,代表他要看展览中的第 aa 幅至第 bb 幅画(包含 a,ba,b)之间的所有图画,而 ...
- 洛谷 [P1638 逛画展] (尺取法)
Link https://www.luogu.org/problemnew/show/P1638 Description 博览馆正在展出由世上最佳的 M 位画家所画的图画.wangjy想到博览馆去看 ...
- P1638 逛画展(直尺法)
这道题是直尺法的模板题: #include<iostream> using namespace std; const int maxn = 1e6 + 5; const int M = 2 ...
- 洛谷P1638 逛画展
题目描述 博览馆正在展出由世上最佳的 m 位画家所画的图画. 游客在购买门票时必须说明两个数字,a 和 b,代表他要看展览中的第 a 幅至第 b 幅画(包含 a,b)之间的所有图画,而门票的价钱就是一 ...
- 洛谷P1638 逛画展-最简单的双指针做法
思路:定义双指针x和y代表[x,y]区间,初始化x=y=0开始遍历,刚开始时一直增加y直到包含了所有作家的画,然后就从左边x开始删区间有重复作家的画就行.注意不要把任何一个作家的画删到0!! 代码如下 ...
- [Luogu]P1638逛画展
注意到满足要求的区间具有单调性,于是想到用滑动窗口. 区间具有单调性,即若[L,R]满足条件, [L,R+1]必满足条件,并且[R+1,L]有可能满足条件.如此一来不用O(n^2)枚举左右端点,这样去 ...
最新文章
- python中的变量、Debug和数据类型
- 美团方法论,苦练基本功
- LCD显示异常分析——开机闪现花屏【转】
- 【RFID】基于MATLAB的RFID 系统的空中接口过程以及防碰撞算法仿真
- LeetCode Design TinyURL
- 通过Nginx复杂安装
- Linux读写执行(RWX)权限
- 一个静态库框架模板: iOS Universal Framework Mk 7
- Linux CentOS 6.5 + Apache + Mariadb + PHP环境搭建
- [ASP.NET Core 3框架揭秘] 跨平台开发体验: Windows [上篇]
- MySQL集群:高可用性DBMS
- Python_列表生成式
- php和asp渲染页面,Vue.js与 ASP.NET Core 服务端渲染功能
- Django - 日期、时间字段
- xaf 设置内置(built-in actions)按钮的可用状态
- python相机标定
- 2021年南京市高考成绩查询,2021年南京高考各高中成绩及本科升学率数据排名及分析...
- 中国人霸屏奥运会乒乓球赛这事 外国人怎么看?
- U盘修复后文件丢失怎么办?U盘数据丢失怎么恢复
- JavaScript反爬之哈希算法