2023河南萌新联赛第(四)场:河南大学 I - yh的线段
2023河南萌新联赛第(四)场:河南大学 I - yh的线段
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 524288K,其他语言1048576K
64bit IO Format: %lld
题目描述
yh喜欢好线段,好线段即两条线段相交且不与其他线段重合的线段。
两条线段 [ l 1 , r 1 ] [l_1,r_1] [l1,r1]和 ∣ l 2 , r 2 ] |l_2,r_2] ∣l2,r2]相交(如果存在至少一个 x x x ,使得 l 1 < = x < = r 1 l_1<=x<=r_1 l1<=x<=r1和 l 2 < = x < = r 2 l_2<=x<=r_2 l2<=x<=r2 ,则认为两个线段相交)。
yh在数轴上有几条线段,他可以把在数轴上相交的线段结合,但是对于每个线段只能与其它线段结合一次,且不能与其它线段有重合部分,yh可以舍弃任何数量的线段
给你 n ( 2 < n < 1 e 6 ) n(2<n<1e6) n(2<n<1e6) 条线段,如果两条线段相交不与其他线段相交,则由这两条线段组成的线段被称为好线段,线段不能被重复使用,但可以被舍弃任意数量的线段,请你找出好线段个数的最大值。
输入描述:
第一行包含一个正数 n ( 2 < n < l e 6 ) n (2< n< le6) n(2<n<le6) ———— 线段的个数。
接下来 n n n 行各包含两个整数 l i l_i li 和 r i r_i ri ( 0 < = l i < = r i < = 1 0 9 0<=l_i<=r_i<=10^9 0<=li<=ri<=109),表示 n n n 个线段。
输出描述:
输出好线段个数的最大值。
示例1
输入
5
2 2
2 8
0 10
1 2
5 6
输出
1
示例2
输入
7
2 4
9 12
2 4
7 7
4 8
10 13
6 8
输出
3
说明
对于样例2,我们可以删除[4,8]这一条线段,然后将[2,4]和[2,4]、[6,8]和[7,7]、[9,12]和[10,13]组成三条好线段,可以看出这是最优的情况。
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;class Node implements Comparable<Node> {int l, r;public Node(int l, int r) {this.l = l;this.r = r;}@Overridepublic int compareTo(Node o) {return Integer.compare(this.r, o.r);}
}public class Main {public static void main(String[] args) throws IOException {BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));int n = Integer.parseInt(bf.readLine());ArrayList<Node> arrayList = new ArrayList<>();for (int i = 0; i < n; i++) {String[] str = bf.readLine().split(" ");int l = Integer.parseInt(str[0]);int r = Integer.parseInt(str[1]);arrayList.add(new Node(l, r));}//对于重复相交的线段我们只用统计一次即可,因为可以删除任何数量的线段,//为了找出最大数量的好线段,我们可以按线段的右端点排序存储,然后遍历统计即可Collections.sort(arrayList);int ans = 0;int f = -1, l = -1;for (Node ai : arrayList) {if (ai.l <= f) continue;if (ai.l <= l) {ans++;f = ai.r;} else l = ai.r;}bw.write(String.valueOf(ans));bw.close();}
}
2023河南萌新联赛第(四)场:河南大学 I - yh的线段相关推荐
- 题解 | 2023河南萌新联赛第(四)场:河南大学 解题报告
足下科技-c++软件开发工程师 岗位名:c++软件开发工程师 岗位类型:C++ 岗位职责: 岗位职责:1.参与公司自动驾驶软件系统中间件.框架的设计和开发:2.负责中间件在软硬件平台上的适 题解 | ...
- L---泰拉瑞亚---2023河南萌新联赛第(三)场:郑州大学
链接:登录-专业IT笔试面试备考平台_牛客网 来源:牛客网 示例1 输入 1 10 3 5 输出 3 说明 只有一把回旋镖,你可以先打两次伤害为3的,再打一次倾尽全力的,造成的伤害为5.总伤害为3+3 ...
- 2022河南萌新联赛第(二)场:河南理工大学 补题题解(A、B、C、F、J、L)
2022河南萌新联赛第(二)场:河南理工大学 A 妙手 B 宝石 C 斩龙 F 手办 J 签到 L HPU 就过了一道题,三道签到的两题都是思路对了但没写出来,只能说自己还是太菜,需要努力! 比赛地址 ...
- 2022河南萌新联赛第(二)场
2022河南萌新联赛第(二)场 目录 F 手办 G 无限 J 签到 L HPU 结语 水题水题 目录 F 手办 思路:暴力是否有立方数是n的因子 #include<bits/stdc++.h&g ...
- 【2022河南萌新联赛第(五)场:信息工程大学】【部分思路题解+代码解析】
文章目录 2022河南萌新联赛第(五)场:信息工程大学 B 交通改造 题目描述 示例1 题目解析: 思路1: 思路2: C 丢手绢 题目描述 示例1 题目分析: 快速幂: AC代码: F 分割草坪 题 ...
- 22.11.25打卡 2022河南萌新联赛第(二)场:河南理工大学 AFJL
之前漏下的打卡慢慢补 2022河南萌新联赛第(二)场:河南理工大学_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ A题 想了好一会都没什么思路, 主要是这个1e1145 ...
- 2022河南萌新联赛
2022河南萌新联赛第(一)场:河南工业大学 A - Alice and Bob B - 打对子 C - 割竿榄 D - 纪念品领取 E - 聚会 F - 买车 G - 热身小游戏 H - 兴奋值 I ...
- 2022/7/17/题解2022河南萌新联赛第(二)场:河南理工大学https://ac.nowcoder.com/acm/contest/37344
A题:https://ac.nowcoder.com/acm/contest/37344/A 看代码比说结论要快得多 #include<bits/stdc++.h> using names ...
- 2022河南萌新联赛第(三)场:河南大学
A.玉米大炮 题目链接 关键点: 1.本题要求求出打败僵尸的最短时间,并且随着时间的增大,打败的概率越来越大,所以为递增的,因此可以用二分 2.二分打败时间,这里注意要开long long,然后是判断 ...
最新文章
- [Contest20180415]看无可看
- UNICODE_STRING 总结
- 一次上机试题(面向对象)
- hdu 4358(莫队算法+dfs序列)
- 【笔记】Windows Phone 8开发笔记之API
- vue项目使用electron打包成桌面应用
- 【Python爬虫】Windows环境下wxpy不需每次登陆重新扫描
- 50道编程小题目之【水仙花数】
- HDU 5769 Substring(后缀数组)
- SQL数据去重复 Distinct 和 row_number() over()
- css part 2
- LPC1768的USB-相关结构体定义
- 超详细! 利用Synopsys VCS对Verilog代码加密的四种方法
- python爬取豆瓣读书界面的书名、作者、价格、导入数据库_python爬虫:利用正则表达式爬取豆瓣读书首页的book...
- kernel Damon实现
- div p、divp、div+p、div~p、div.a 、p,span的用法和区别
- 手机投影到deepin
- php实现pdhf2加密,搞了一天半了,可恶的加密代码解决方案
- 【财富空间】幸福,就是有这3种能力
- 51单片机之感应开盖垃圾桶
热门文章
- 若变量已正确定义并赋值,下面符合C语言语法的表达式是
- 20 ubuntu 中科大源_ubuntu20.04 LTS 更换国内163源、阿里源、清华源、中科大源
- SpringBoot Schedule的三种使用方式
- [从零构建光栅渲染器] 6. 顶点和片元着色器的工作原理
- 织梦tags.php一道二级目录,DedeCMS织梦Tags标签页制作
- mac os苹果操作系统安装docker和oracle 11g
- Linux进程间通信手段
- 采用离散模型搭建永磁同步电机控制系统
- 2023年中国海洋大学计算机及电子信息考研分析
- Python的布尔型