1293: [SCOI2009]生日礼物

Time Limit: 10 Sec  Memory Limit: 162 MB
Submit: 2380  Solved: 1290
[Submit][Status][Discuss]

Description

小西有一条很长的彩带,彩带上挂着各式各样的彩珠。已知彩珠有N个,分为K种。简单的说,可以将彩带考虑为x轴,每一个彩珠有一个对应的坐标(即位置)。某些坐标上可以没有彩珠,但多个彩珠也可以出现在同一个位置上。 小布生日快到了,于是小西打算剪一段彩带送给小布。为了让礼物彩带足够漂亮,小西希望这一段彩带中能包含所有种类的彩珠。同时,为了方便,小西希望这段彩带尽可能短,你能帮助小西计算这个最短的长度么?彩带的长度即为彩带开始位置到结束位置的位置差。

Input

第一行包含两个整数N, K,分别表示彩珠的总数以及种类数。接下来K行,每行第一个数为Ti,表示第i种彩珠的数目。接下来按升序给出Ti个非负整数,为这Ti个彩珠分别出现的位置。

Output

应包含一行,为最短彩带长度。

Sample Input

6 3
1 5
2 1 7
3 1 3 8

Sample Output

3

暴力枚举起点

对于每个起点,所有种类的宝珠都找在这个起点后面且离起点最近的就好

具有单调性,代码一看就懂

#include<stdio.h>
#include<functional>
#include<queue>
#include<algorithm>
using namespace std;
priority_queue<int, vector<int>, greater<int> > q[66];
int main(void)
{int n, m, i, k, x, ans, len;while(scanf("%d%d", &n, &m)!=EOF){for(i=0;i<=m;i++){while(q[i].empty()==0)q[i].pop();}for(i=1;i<=m;i++){scanf("%d", &k);while(k--){scanf("%d", &x);q[i].push(x);q[0].push(x);}}ans = 2147483647;while(q[0].empty()==0){x = q[0].top();q[0].pop();len = 0;for(i=1;i<=m;i++){while(q[i].empty()==0 && q[i].top()<x)q[i].pop();if(q[i].empty())break;len = max(len, q[i].top()-x);}if(i<=m)break;ans = min(ans, len);}printf("%d\n", ans);}return 0;
}

bzoj 1293: [SCOI2009]生日礼物相关推荐

  1. BZOJ 1293 [SCOI2009]生日礼物

    [题解] 离散化+Two Pointer. 离散化的时候有些特殊姿势. #include<cstdio> #include<vector> #include<algori ...

  2. BZOJ 1293 [SCOI2009] 生日礼物

    Description 小西有一条很长的彩带,彩带上挂着各式各样的彩珠.已知彩珠有N个,分为K种.简单的说,可以将彩带考虑为x轴,每一个彩珠有一个对应的坐标(即位置).某些坐标上可以没有彩珠,但多个彩 ...

  3. P2564 [SCOI2009]生日礼物

    P2564 [SCOI2009]生日礼物 题意: n个彩珠,k个种类,分布在一个彩带上,现在要选取彩带的一部分,要求该部分包含所有种类的彩珠,且长度尽可能短,你能计算这个最短的长度吗? 1≤N≤100 ...

  4. BZOJ 1026 [SCOI2009]windy数

    1026: [SCOI2009]windy数 Description windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道,在A和B之间 ...

  5. bzoj 1295: [SCOI2009]最长距离

    题目链接 1295: [SCOI2009]最长距离 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1165  Solved: 619 [Submit ...

  6. bzoj:1026: [SCOI2009]windy数(数位dp)

    1026: [SCOI2009]windy数 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 7982  Solved: 3593 Descriptio ...

  7. BZOJ 1024: [SCOI2009]生日快乐

    1024: [SCOI2009]生日快乐 Description windy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕.现在包括windy,一共有 N 个人来分 ...

  8. BZOJ 1295: [SCOI2009]最长距离 spfa

    1295: [SCOI2009]最长距离 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=1295 Description windy有一块 ...

  9. bzoj 1024 [SCOI2009]生日快乐

    1024: [SCOI2009]生日快乐 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 1955  Solved: 1395 [Submit][Sta ...

最新文章

  1. 快速android app开发,快速學會開發 Android App
  2. PostgreSQL 10.1 手册_部分 II. SQL 语言_第 12 章 全文搜索_12.9. GIN 和 GiST 索引类型
  3. 成功解决ModuleNotFoundError: No module named ‘sklearn.learning_curve‘
  4. phpstudy一直自动停止启动_phpstudy apache启动后停止怎么办?
  5. flink HA高可用Standalone集群搭建
  6. 学编程一定要掌握的186个关键单词!
  7. 如何快速搭建一个免费的,无限流量的Blog
  8. 简单阐述下OC中UIImage三种创建方式~~~
  9. 系统学习深度学习(二十六)--BiRNN
  10. ttl备份机顶盒固件_机顶盒刷机TTL教程,任意安装安卓软件,免费看电视直播
  11. 关于我考研的这一年随记 —— 2022暨南大学电子信息计算机技术专业初试第三复试第一
  12. 使用计算机SN号匹配对应的计算机名 作为计算机名字的一个小脚本 win10可用
  13. HEVC与AVC的区别与联系(十二),Android面试题集锦在这里
  14. 吴军《态度》读后感(1):人生哲学
  15. 各主板黑苹果dsdt补丁_关于B75主板的DSDT警告修改和睡眠相关修改
  16. 有没有测试牙齿需不需要修正的软件,三步图测法,就能知道自己牙齿是否需要矫正...
  17. oracle判断日期为月末,ORACLE查询月初和月底时间
  18. 快应用开发必备工具下载
  19. 图像超分辨率简单介绍
  20. 如何利用能源收获来缓解智能家居的安装挑战?

热门文章

  1. python的优点有哪些-python语言有什么优势
  2. 快准狠才叫爽!六款智能电视语音识别大比拼
  3. python数据包发送给云平台_用python发送短消息(基于阿里云平台)
  4. html缓存效果代码,html5缓存(示例代码)
  5. 软件版本控制Subversion和Git
  6. 【java笔记】random类生成随机数
  7. 【python笔记】:python简介
  8. LeetCode513 找左下角的值
  9. matlab给hfss建模,HFSS-MATLAB联合建模
  10. php 替换 数组,php如何替换数组的值