洛谷 P1803 凌乱的yyy【经典贪心/选择不相交区间】
题目背景
快noip了,yyy很紧张!
题目描述
现在各大oj上有n个比赛,每个比赛的开始、结束的时间点是知道的。
yyy认为,参加越多的比赛,noip就能考的越好(假的)
所以,他想知道他最多能参加几个比赛。
由于yyy是蒟蒻,如果要参加一个比赛必须善始善终,而且不能同时参加2个及以上的比赛。
输入输出格式
输入格式:
第一行是一个整数n ,接下来n行每行是2个正整数ai,bi(ai<bi),表示比赛开始、结束的时间。
输出格式:
一个整数最多参加的比赛数目。
输入输出样例
说明
对于20%的数据,n≤10;
对于50%的数据,n≤1000;
对于70%的数据,n≤100000;
对于100%的数据,n≤1000000,0≤ai<bi≤1000000。
【算法模型】:给n个开区间,选择尽量多的开区间,使两两不相交。//在一个数轴上有n条线段,现要选取其中k条线段使得这k条线段两两没有重合部分,问最大的k为多少。
【分析】:首先按照结束时间排序,显然放右端点最靠左的线段最好,从左向右放,右端点越小妨碍越少其他线段放置按右端点排序,贪心放置线段,即能放就放。
设一个ed=-1;
接着找到最先结束的一个比赛时间设为ed,
然后找到第一个比ed多的比赛开始时间,
再把找到的这个比赛的结束时间当做下一次比较的ed,同时计数器+1
【代码】:
#include <bits/stdc++.h> using namespace std; const int N = 1e6+; int n,ans;
struct node
{
int st,ed;
}a[N]; int cmp(node x,node y)
{
return x.ed<y.ed;
}
int main()
{
ios::sync_with_stdio(false);
cin>>n;
for(int i=;i<n;i++)
{
cin>>a[i].st>>a[i].ed;
}
sort(a,a+n,cmp);
int t = -;
for(int i=;i<n;i++)
{
if(a[i].st>=t)//寻找到比当前大的结束时间且开始时间比当前晚
{
ans++;
t=a[i].ed;
}
}
cout<<ans<<endl;
return ;
}
洛谷 P1803 凌乱的yyy【经典贪心/选择不相交区间】的更多相关文章
- 洛谷P1803——凌乱的yyy(贪心)
题目描述 现在各大oj上有n个比赛,每个比赛的开始.结束的时间点是知道的. yyy认为,参加越多的比赛,noip就能考的越好(假的) 所以,他想知道他最多能参加几个比赛. 由于yyy是蒟蒻,如果要参加 ...
- 洛谷 P1803 凌乱的yyy Label:Water 贪心
题目背景 快noip了,yyy很紧张! 题目描述 现在各大oj上有n个比赛,每个比赛的开始.结束的时间点是知道的. yyy认为,参加越多的比赛,noip就能考的越好(假的) 所以,他想知道他最多能参加 ...
- 洛谷P1803 凌乱的yyy dp
我要日更嘤嘤嘤>_< 原题戳>>https://www.luogu.org/problem/show?pid=1803<<(其实是戳不动的,复制粘贴吧) 题目背景 ...
- 洛谷P1803凌乱的yyy 题解
题目传送门 这道题也是贪心思想.先排序一遍(按照结束的时间排)在进行扫描,满足条件的直接保存,增加ans,最后输出即可. #include<bits/stdc++.h> using nam ...
- 洛谷 P1803 凌乱的yyy
题目背景 快noip了,yyy很紧张! 题目描述 现在各大oj上有n个比赛,每个比赛的开始.结束的时间点是知道的. yyy认为,参加越多的比赛,noip就能考的越好(假的) 所以,他想知道他最多能参加 ...
- 洛谷—— P1803 凌乱的yyy
https://www.luogu.org/problem/show?pid=1803 题目背景 快noip了,yyy很紧张! 题目描述 现在各大oj上有n个比赛,每个比赛的开始.结束的时间点是知道的 ...
- 洛谷 1803 凌乱的yyy
[题意概述] 给出100W个区间,要求找出尽量多的区间满足它们互补重叠,输出最大的区间数. [题解] 贪心. 对区间按照右端点从小到大排序,然后逐个加入合法区间即可. #include<cstd ...
- HDU 2037 - 今年暑假不AC - [经典 选择不相交区间 问题]
是一道很经典的选择不相交区间的问题. 关于选择不相交区间,可以参考刘汝佳.也可以参考:http://blog.csdn.net/dgq8211/article/details/7534488 以及模板 ...
- 贪心思想之区间贪心 关联洛谷P1803
力扣上也有一道类似的题 几乎是一样 输出不同 → 力扣leetcode 435. 无重叠区间 区间贪心是比较经典的 就拿洛谷P1803来举例 题目大意 n个比赛 [开始时间,结束时间] 问一个人最多能 ...
随机推荐
- python基础实践(二)
-*-越简单越快乐-*-# -*- coding:utf-8 -*-# Author:sweeping-monkQuestion_1 = "python中的整数运算"Method_ ...
- python学习总结---文件操作
# 文件操作 ### 目录管理(os) - 示例 ```python # 执行系统命令 # 清屏 # os.system('cls') # 调出计算器 # os.system('calc') # 查看 ...
- Pacemaker、corosync
pacemaker详细介绍: http://blog.51cto.com/freeloda/1274533 corosync详细介绍: http://blog.51cto.com/freeloda/1 ...
- python杂七杂八知识点
1.中文编码问题解决办法:# _*_ coding:UTF8 _*_ 2.numpy.ndArray a = array([[1,2,3], [4, 5, 6]]) 3.numpy.argsort() ...
- django的F和Q对象
F表达式和Q表达式: # 示例模型如下 class Book(models.Model): """图书模型""" name = models ...
- JSP/Servlet Web 学习笔记 DayFive
ServletConfig <只对当前Servlet有效> (1)在Web容器初始化Servlet实例时,都会为这个Servlet准备一个唯一的ServletConfig实例(俗称Serv ...
- UVALive 5027 二分图 EK
C - Card Game Crawling in process...Crawling failedTime Limit:3000MS Memory Limit:0KB 64bit IO ...
- lambda表达式10个示例——学习笔记
摘录:http://www.importnew.com/16436.html 1.lambda实现Runnable // Java 8之前: new Thread(new Runnable() { @ ...
- BZOJ 2653 middle | 主席树
题目: http://www.lydsy.com/JudgeOnline/problem.php?id=2653 题解: 设答案为ans,把大于等于ans的记为1,小于的记为-1,这样可以知道当前an ...
- SecureCRT配置设置
颜色设置 参考: http://blog.csdn.net/zklth/article/details/8937905 配置导入.导出 参考: http://jingyan.baidu.com ...