牛客网小白月赛12(华华听月月唱歌)
链接: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(华华听月月唱歌)相关推荐
- 牛客网小白月赛5 H-最大公约数(lcm)
链接:https://www.nowcoder.com/acm/contest/135/H 来源:牛客网 题目描述 给定两个正整数a,b,求a,b的最小公倍数.(即[a,b]) 输入描述: 两个整整数 ...
- 牛客网 小白月赛4 D-郊区春游 最短路+状压dp
链接: https://www.nowcoder.com/acm/contest/134/D来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524 ...
- 牛客网小白月赛6D 字符串丝带
链接:https://www.nowcoder.com/acm/contest/136/D 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 65536K,其他语言1310 ...
- 牛客网——小白月赛13 —— A题
链接:https://ac.nowcoder.com/acm/contest/549/A 来源:牛客网 题目描述 这是一道签到题,主要考验比赛时的手速. 接下来是一段很简单的代码,或许你提交它就可以A ...
- 牛客网小白月赛 10 A B C
小白月赛越来越不小白了,也可能是我越来越菜了 a题 Actci偶然发现了一个矿洞,这个矿洞的结构类似与一棵二叉树,Actci发现的矿洞恰好位于根节点处,为了尽快挖掘,Actci找来了她的小伙伴们来帮忙 ...
- 2018年,牛客网小白月赛5
第一次啊,补题,希望大佬批评. 题目按我补题顺序来的. https://www.nowcoder.com/acm/contest/135#question H 题 最大公倍数 题意:给出两个数,求最 ...
- 牛客网 小白月赛6
地址链接:点我 A 鲲 分作弊的情况和不作弊的情况 #include <cstdio> #include <cmath>int main() {double L, k, a, ...
- 牛客网【每日一题】3月25日 tokitsukaze and Soldier
牛客网[每日一题]3月25 题号:NC50439 名称: tokitsukaze and Soldier 来源:练习赛50-C 链接: link. 来源:牛客网 时间限制:C/C++ 1秒,其他语言2 ...
- 牛客小白月赛12 H 华华和月月种树 (离线dfs序+线段树)
链接:https://ac.nowcoder.com/acm/contest/392/H 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 131072K,其他语言2621 ...
最新文章
- Java API帮助文档怎么查找?
- mock以及特殊场景下对mock数据的处理
- 阿帕奇跨域_阿帕奇骆驼遇见Redis
- morphological antialiasing
- linux dns chroot,chroot DNS 过程(包括一些简单的排错过程)
- 新生儿操作系统操作手册
- golang:map转json字符串
- Qt - 自定义窗口 点击窗口外自动关闭
- 效率提升总结-Unity 项目规范文档 【建议收藏】
- 台式计算机前面插耳机没声音,Win10台式机机箱前置耳机插孔没声音如何修复
- arping 本机出现 timeout 问题
- 在mini2440上面搞定CC2500驱动
- WinDriver简介(或介绍)
- 库存进销存出入库销售mysql表结构_进销存数据库表结构设计.doc
- 如何用计算机进行机械制图,机械制图与机械CAD的有机结合的探究
- java实现一个月的日历打印,Java实现按年月打印日历功能【基于Calendar】,日历calendar...
- 第一天:英语四级听力训练
- python找列表中相邻数的个数_利用python求相邻数的方法示例
- Android 类似未读短信图标显示数字效果的分析
- Hadoop入门——初识Hadoop 自学hadoop视频教程