链接:https://ac.nowcoder.com/acm/contest/392/A
来源:牛客网

题目描述

月月唱歌超级好听的说!华华听说月月在某个网站发布了自己唱的歌曲,于是把完整的歌曲下载到了U盘里。然而华华不小心把U盘摔了一下,里面的文件摔碎了。月月的歌曲可以看成由1到N的正整数依次排列构成的序列,它现在变成了若干个区间,这些区间可能互相重叠。华华想把它修复为完整的歌曲,也就是找到若干个片段,使他们的并集包含1到N(注意,本题中我们只关注整数,见样例1)。但是华华很懒,所以他想选择最少的区间。请你算出华华最少选择多少个区间。因为华华的U盘受损严重,所以有可能做不到,如果做不到请输出-1。

输入描述:

第一行两个正整数N、M,表示歌曲的原长和片段的个数。
接下来M行,每行两个正整数L、R表示第i的片段对应的区间是[L,R]。

输出描述:

如果可以做到,输出最少需要的片段的数量,否则输出-1。

示例1

输入

4 2
1 2
3 4

输出

2

示例2

输入

4 2
1 1
3 4

输出

-1

示例3

输入

10 5
1 1
2 5
3 6
4 9
8 10

输出

4

备注:

1≤L≤R≤10e9,1≤N≤10e9,1≤M≤10e5

优先队列以左第一优先,长度第二优先。
不断更新当前边界值

import java.util.PriorityQueue;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);PriorityQueue<Code> pq = new PriorityQueue<Code>();int n = sc.nextInt();int m = sc.nextInt();for(int i = 0;i<m;i++) {pq.add(new Code(sc.nextInt(), sc.nextInt()));}int L = 0;Code pre = new Code(0, 0);int cont = 1;while(!pq.isEmpty()) {Code c=pq.poll();if(c.left<=L+1) {if(c.right>pre.right) {pre = c;}}else {if(c.left>1+pre.right) {System.out.println(-1);return;}if(pre.right>=n) {System.out.println(cont);return;}cont++;L = pre.right;pre = c;}}if(pre.right>=n) {System.out.println(cont);}else{System.out.println(-1);}}
}class Code implements Comparable<Code> {int left;int right;int len;public Code(int left, int right) {this.left = left;this.right = right;this.len = right-left;}@Overridepublic String toString() {return "Code [left=" + left + ", right=" + right + ", len=" + len + "]";}@Overridepublic int compareTo(Code c) {return left - c.left==0?len-c.len:left-c.left ; }}

牛客网小白月赛12(华华听月月唱歌)相关推荐

  1. 牛客网小白月赛5 H-最大公约数(lcm)

    链接:https://www.nowcoder.com/acm/contest/135/H 来源:牛客网 题目描述 给定两个正整数a,b,求a,b的最小公倍数.(即[a,b]) 输入描述: 两个整整数 ...

  2. 牛客网 小白月赛4 D-郊区春游 最短路+状压dp

    链接: https://www.nowcoder.com/acm/contest/134/D来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524 ...

  3. 牛客网小白月赛6D 字符串丝带

    链接:https://www.nowcoder.com/acm/contest/136/D 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 65536K,其他语言1310 ...

  4. 牛客网——小白月赛13 —— A题

    链接:https://ac.nowcoder.com/acm/contest/549/A 来源:牛客网 题目描述 这是一道签到题,主要考验比赛时的手速. 接下来是一段很简单的代码,或许你提交它就可以A ...

  5. 牛客网小白月赛 10 A B C

    小白月赛越来越不小白了,也可能是我越来越菜了 a题 Actci偶然发现了一个矿洞,这个矿洞的结构类似与一棵二叉树,Actci发现的矿洞恰好位于根节点处,为了尽快挖掘,Actci找来了她的小伙伴们来帮忙 ...

  6. 2018年,牛客网小白月赛5

    第一次啊,补题,希望大佬批评. 题目按我补题顺序来的. https://www.nowcoder.com/acm/contest/135#question H  题 最大公倍数 题意:给出两个数,求最 ...

  7. 牛客网 小白月赛6

    地址链接:点我 A 鲲 分作弊的情况和不作弊的情况 #include <cstdio> #include <cmath>int main() {double L, k, a, ...

  8. 牛客网【每日一题】3月25日 tokitsukaze and Soldier

    牛客网[每日一题]3月25 题号:NC50439 名称: tokitsukaze and Soldier 来源:练习赛50-C 链接: link. 来源:牛客网 时间限制:C/C++ 1秒,其他语言2 ...

  9. 牛客小白月赛12 H 华华和月月种树 (离线dfs序+线段树)

    链接:https://ac.nowcoder.com/acm/contest/392/H 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 131072K,其他语言2621 ...

最新文章

  1. Java API帮助文档怎么查找?
  2. mock以及特殊场景下对mock数据的处理
  3. 阿帕奇跨域_阿帕奇骆驼遇见Redis
  4. morphological antialiasing
  5. linux dns chroot,chroot DNS 过程(包括一些简单的排错过程)
  6. 新生儿操作系统操作手册
  7. golang:map转json字符串
  8. Qt - 自定义窗口 点击窗口外自动关闭
  9. 效率提升总结-Unity 项目规范文档 【建议收藏】
  10. 台式计算机前面插耳机没声音,Win10台式机机箱前置耳机插孔没声音如何修复
  11. arping 本机出现 timeout 问题
  12. 在mini2440上面搞定CC2500驱动
  13. WinDriver简介(或介绍)
  14. 库存进销存出入库销售mysql表结构_进销存数据库表结构设计.doc
  15. 如何用计算机进行机械制图,机械制图与机械CAD的有机结合的探究
  16. java实现一个月的日历打印,Java实现按年月打印日历功能【基于Calendar】,日历calendar...
  17. 第一天:英语四级听力训练
  18. python找列表中相邻数的个数_利用python求相邻数的方法示例
  19. Android 类似未读短信图标显示数字效果的分析
  20. Hadoop入门——初识Hadoop 自学hadoop视频教程

热门文章

  1. 高压电工作业考试试题
  2. 单纯形法表格法例题详解_【精品】最优化单纯形法例题讲解.doc
  3. 【开发工具】【objdump】反汇编工具objdump的使用
  4. 2017年最全的电子杂志制作教程都在这里了
  5. 不爱你的人只会跟你在优衣库试衣间,爱你的人跟你用WSTMall建站
  6. echarts-legend-自定义图例的图标,未激活图例置灰
  7. 移动MAS发送短信,接受状态和接受回复【HTTP】
  8. 输入法的好帮手——IMETOOL
  9. Esxi下建vm磁盘共享
  10. python计算ema_Python第三方库TALIB对RSI的EMA算法,有偿求解答!