P2564 生日礼物
生日礼物
题目描述:
在一段彩带上有不同颜色的彩珠,求出包含所有颜色彩珠的最短彩带长度。
思路:
我们可以把按彩珠的位置把所有彩珠排一下序,然后从1开始遍历这些彩珠,并记录出现过的颜色数目,知道该数目等于颜色总数,就开始模拟队列的先进先出,不断更新答案。
代码:
#include<cstdio>
#include<iostream>
#include<algorithm>
#define N 1000010
using namespace std;
int r,l,ans,col[N],num,sum,n,m,a;
struct hehe{
int x;
int y;
};
hehe q[N],que[N];
int cmp(hehe a,hehe b){
return a.x<b.x;
}
void join(hehe a){
r++;
q[r]=a;
col[a.y]++;
if(col[a.y]==)
num++;
}
void exit(){
col[q[l].y]--;
if(!col[q[l].y])
num--;
l++;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=;i<=m;++i){
scanf("%d",&a);
for(int j=;j<=a;++j){
sum++;
scanf("%d",&que[sum].x);
que[sum].y=i;
}
}
sort(que+,que+n+,cmp);
l=;r=;ans=1e9;
for(int i=;i<=n;++i){
join(que[i]);
while(num==m){
ans=min(ans,q[r].x-q[l].x);
exit();
}
}
printf("%d",ans);
return ;
}
P2564 生日礼物的更多相关文章
- 洛谷P2564 生日礼物【单调队列】
		题目背景 四川2009NOI省选 题目描述 小西有一条很长的彩带,彩带上挂着各式各样的彩珠.已知彩珠有N个,分为K种.简单的说,可以将彩带考虑为x轴,每一个彩珠有一个对应的坐标(即位置).某些坐标上可 ... 
- P2564 [SCOI2009]生日礼物(尺取法)
		P2564 [SCOI2009]生日礼物 三个字.尺取法......... 坐标按x轴排序. 蓝后尺取一下.......... #include<iostream> #include< ... 
- P2564 [SCOI2009]生日礼物  贪心
		https://www.luogu.org/problemnew/show/P2564) 题意 有n个珠子,包括k中颜色,找出长度最小的一个区间,使得这个区间中包含所有的颜色. 思路 把n个珠子按照位 ... 
- P2564 [SCOI2009]生日礼物
		题目背景 四川2009NOI省选 题目描述 小西有一条很长的彩带,彩带上挂着各式各样的彩珠.已知彩珠有N个,分为K种.简单的说,可以将彩带考虑为x轴,每一个彩珠有一个对应的坐标(即位置).某些坐标上可 ... 
- 【P2564】生日礼物(单调队列)
		这个题看上去状态比较多,实际上由于题目的输出需要,又因为是一个线性的结构,所以我们可以有一些操作. 这么想,如果我们有了一个满足条件的区间,此时我们缩减左端点,然后判断此时是否还是满足,满足就继续缩减 ... 
- 洛谷P2564 [SCOI2009]生日礼物
		题目背景 四川2009NOI省选 题目描述 小西有一条很长的彩带,彩带上挂着各式各样的彩珠.已知彩珠有N个,分为K种.简单的说,可以将彩带考虑为x轴,每一个彩珠有一个对应的坐标(即位置).某些坐标上可 ... 
- 洛谷P2564 [SCOI2009]生日礼物(单调队列)
		传送门 准确的来说这个应该叫尺取法? 先对所有的点按$x$坐标进行排序 我们维护两个指针$l,r$,每一次令$r$不断右移直到所有颜色齐全,再不断右移$l$直到颜色数不足,那么此时$[l-1,r]$这 ... 
- LUOGU P2564 [SCOI2009]生日礼物 (队列+模拟)
		传送门 解题思路 还是比较好想的,用一个队列,然后把所有点放在一起排个序,依次入队.每次检查队头元素的种类是否为当前入队元素种类,是的话就一直\(pop\),每次更新答案即可. 代码 #include ... 
- 【BZOJ】【1293】【SCOI2009】生日礼物
		二分/堆 求一个最小的区间使得包含所有的颜色(并不一定只出现一次)$n\leq 10^6$ 我想的做法是:二分这个最小的长度(满足单调性……好久才想到QAQ),然后O(n)判断是否有可行的区间,这一步 ... 
随机推荐
- 干货|java缓存技术详解
			一.缓存是什么? 请点击此处输入图片描述 Cache ①高速缓冲存储器,其中复制了频繁使用的数据以利于快速访问. ②位于速度相差较大的两种硬件/软件之间,用于协调两者数据传输速度差异的结构 二.缓存有 ... 
- requests模块下载视频  显示进度和网速
			requests 下载视频 import os,time import requests def downloadFile(name, url): headers = {'Proxy-Connecti ... 
- hdu 3861 The King’s Problem
			Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission( ... 
- UWP开发:自动生成迷宫&自动寻路算法(1)
			(1)前端篇 首先,我们创建一个新的Universal Windows Platform程序.这些小方块是通过GridView来罗列的,这样可以避免MainPaga.xaml的<Rectangl ... 
- 在一个另一个文件中 #include一个**dlg.h文件,会发生dlg的资源ID未定义的错误 :
			1 在一个另一个文件中 #include一个**dlg.h文件,会发生dlg的资源ID未定义的错误 : dlg1.h(23) : error C2065: 'IDD_DIALOG1' : und ... 
- UVA 1451 Average平均值 (数形结合,斜率优化)
			摘要:数形结合,斜率优化,单调队列. 题意:求一个长度为n的01串的子串,子串长度至少为L,平均值应该尽量大,多个满足条件取长度最短,还有多个的话,取起点最靠左. 求出前缀和S[i],令点Pi表示(i ... 
- 团队作业-Beta冲刺(周三)
			这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1 这个作业要求在哪里 https://edu.cnblo ... 
- Problem C: 查找最大元素
			Problem C: 查找最大元素 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 786 Solved: 377[Submit][Status][Web ... 
- Hbase 完全分布式 高可用 集群搭建
			1.准备 Hadoop 版本:2.7.7 ZooKeeper 版本:3.4.14 Hbase 版本:2.0.5 四台主机: s0, s1, s2, s3 搭建目标如下: HMaster:s0,s1(备 ... 
- C++利用偏移量对文件操作
			对输入流操作:seekg()与tellg()对输出流操作:seekp()与tellp()下面以输入流函数为例介绍用法: seekg()是对输入文件定位,它有两个参数:第一个参数是偏移量,第二个参数是基 ... 
