P2564 [SCOI2009]生日礼物(尺取法/双指针)
LINK
不得不说 双指针用法nb
题目
输入输出样例
输入
6 3
1 5
2 1 7
3 1 3 8
输出
3
思路:
建议看尺取法
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
//#define int long long
const int mod=1e9+7;
const int N=1e6+10;
int n,k,x,y,num,minn,maxx;
int vis[N];
struct node{int pos,x;
}a[N];
bool cmp(node x,node y){//先位置 后种类 if(x.pos ==y.pos)return x.x <y.x ;return x.pos <y.pos ;
}
int sol(){int ans=INT_MAX;int l=0,r=0,zl=0;while(l<=r&&r<n){if(!vis[a[r].x])zl++;vis[a[r].x]++;while(zl==k){ans=min(ans,a[r].pos-a[l].pos);vis[a[l].x]--;if(!vis[a[l].x ])zl--;l++;//注意位置!!!}r++;//注意位置!!!}return ans;
}
signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n>>k;for(int i=0;i<k;i++){cin>>x;for(int j=0;j<x;j++){cin>>y;a[num].x =i;a[num++].pos =y;} }sort(a,a+num,cmp);cout<<sol();return 0;
}
P2564 [SCOI2009]生日礼物(尺取法/双指针)相关推荐
- P2564 [SCOI2009]生日礼物
P2564 [SCOI2009]生日礼物 题意: n个彩珠,k个种类,分布在一个彩带上,现在要选取彩带的一部分,要求该部分包含所有种类的彩珠,且长度尽可能短,你能计算这个最短的长度吗? 1≤N≤100 ...
- 数据结构9-双指针(尺取法)(double pointer)
双指针有好几种,但是最常用的是尺取法,所以有的时候就说尺取法 双指针,指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个相同方向(快慢指针)或者相反方向(对撞指针)的指针进行扫描, ...
- [SCOI2009]生日礼物 单调性尺取法
题意:给你n个k种颜色的点,每个点都有坐标和颜色两个属性,选出一个长度尽量短的区间,使得每种颜色的点都在区间内出现. 数据范围: 对于50%的数据, N≤10000: 对于80%的数据, N≤8000 ...
- 吃月饼 尺取法(双指针)
月饼 描述 端午节都过了,中秋节还会远吗?中秋节吃月饼是我国的传统习俗.每年的中秋节,yoyo都会吃很多很多个月饼.比如蛋黄莲蓉,豆沙等等.现在,他得到了n个月饼,月饼被排成一个固定的一列.但是这个他 ...
- ACM—各种模拟 总结(字符串,尺取法,数学问题)习题汇总
目录 一.字符串模拟 二. 高精度计算 1. 回文数(高精度,进制转换) 三.数学问题模拟 四.尺取法(双指针法) 1.都说小镇的切糕贵 (尺取法,字符串) umi和弓道 五.奇怪的模拟 x的位数=l ...
- 算法篇之-----滑动窗口(尺取法)
滑动窗口(尺取法 1. 介绍 2. 滑动窗口法的大体框架 4.最小覆盖子串 5.窗口数量 6.最小值 1. 介绍 滑动窗口法,也叫尺取法(可能也不一定相等,大概就是这样 =.=),可以用来解决一些查找 ...
- 【每日一题】8月17日题目精讲-[SCOI2009]生日礼物
来源:牛客网: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 小西有一条很长的彩带,彩带 ...
- 解题报告 (十三) 尺取法
文章目录 尺取法 解题报告 PKU 2100 Graveyard Design PKU 3061 Subsequence PKU 2739 Sum of Consecutive Prime Numbe ...
- P1638 逛画展——尺取法的妙用
题目描述 博览馆正在展出由世上最佳的 mm 位画家所画的图画. 游客在购买门票时必须说明两个数字,aa 和 bb,代表他要看展览中的第 aa 幅至第 bb 幅画(包含 a,ba,b)之间的所有图画,而 ...
最新文章
- android同步服务启动,Android Service的基本用法(startService启动方式生命周期)
- Java线程之多线程与多进程(2)——线程优先级与线程安全
- 2019蓝桥杯省赛---java---A---6(完全二叉树的权值)
- python协程池操作mysql_python_协程方式操作数据库
- 使用spring的JavaMailSender发送邮件
- ExtJS4.2学习 php版(五)
- 猜数字游戏c语言编程排行榜,C语言程序经典示例—-(7)猜数字游戏
- 套用这套模板,玩转周报、月报、年报更省事
- python读取rtf文件_在python中将unicode文本输出到RTF文件
- 记一个bug:ImportError: cannot import name ‘comb‘
- 天问一号入轨火星成功,火星,我们来了!
- jscript经典(待整理)
- localhost是什么?
- 计算机电缆传输频率,传输频率
- 喊苦喊累的程序员们,看看日本人是怎么加班的。
- Git GitHub 简明教程
- 北京图王软件开发有限公司产品介绍-Visual Graph专业图形引擎
- 天猫双 11 背后:409 亿次安全保护,全链路保障每个购物场景
- EasyNVR 使用记录
- 常用Benchmark