华师一附中OI组

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 876|回复: 1
打印 上一主题 下一主题

P1803 凌乱的yyy / 线段覆盖

[复制链接]

50

主题

215

帖子

619

积分

高级会员

Rank: 4

积分
619
跳转到指定楼层
楼主
发表于 2018-9-8 16:08:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
https://www.luogu.org/problemnew/show/P1803


题目背景
快noip了,yyy很紧张!

题目描述
现在各大oj上有n个比赛,每个比赛的开始、结束的时间点是知道的。

yyy认为,参加越多的比赛,noip就能考的越好(假的)

所以,他想知道他最多能参加几个比赛。

由于yyy是蒟蒻,如果要参加一个比赛必须善始善终,而且不能同时参加2个及以上的比赛。

输入输出格式
输入格式:
第一行是一个整数n ,接下来n行每行是2个整数ai,bi(ai<bi),表示比赛开始、结束的时间。

输出格式:
一个整数最多参加的比赛数目。

输入输出样例
输入样例#1:
3
0 2
2 4
1 3
输出样例#1:
2
说明
对于20%的数据,n≤10;
对于50%的数据,n≤1000;
对于70%的数据,n≤100000;
对于100%的数据,n≤1000000,0≤ai<bi≤1000000。
回复

使用道具 举报

9

主题

158

帖子

470

积分

华一学生

积分
470
QQ
沙发
发表于 2018-9-9 20:54:09 | 只看该作者
  1. #include<iostream>
  2. #include<algorithm>
  3. using namespace std;
  4. int n,ans=1,l=1,r=2;
  5. struct times
  6. {
  7.     int a,b;
  8. }t[1000001];
  9. bool operator < (times x,times y)
  10. {
  11.     return x.b<y.b;
  12. }
  13. int main()
  14. {
  15.     cin>>n;
  16.     for(int i=1;i<=n;i++)cin>>t[i].a>>t[i].b;
  17.     sort(t+1,t+n+1);
  18.     while(r<=n)
  19.     {
  20.         if(t[r].a>=t[l].b)ans++,l=r;
  21.         r++;
  22.     }
  23.     cout<<ans;
  24.     return 0;
  25. }
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|服务支持:DZ动力|华师一附中OI组  

GMT+8, 2024-11-2 02:26 , Processed in 0.110639 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表