首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

凌乱的yyy/线段覆盖

003 P1803 凌乱的yyy / 线段覆盖

凌乱的yyy / 线段覆盖

题目背景

快 noip 了,yyy 很紧张!

题目描述

现在各大 oj 上有

个比赛,每个比赛的开始、结束的时间点是知道的。

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

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

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

个及以上的比赛。

输入格式

第一行是一个整数

 ,接下来

行每行是

个整数

(

),表示比赛开始、结束的时间。

输出格式

一个整数最多参加的比赛数目。

样例输入

3

0 2

2 4

1 3

样例输出

2

提示

对于

的数据,

对于

的数据,

对于

的数据,

对于

的数据,

解题思路

1.区间贪心策略,当前结束,希望找下一个区间是开始在当前区间结束后并且结束最早的

2.由1可知,可以按区间结束时间排序

参考程序

#include

using namespace std;

struct se{//区间开始时间和结束时间

int start;

int end;

};

bool cmp(se se1,se se2){//按区间结束排序规则

return se1.end

}

se ses[1000001];//区间数组

int main(){

int n;

cin>>n;

for(int i=1;i

cin>>ses[i].start;

cin>>ses[i].end;

}

sort(ses,ses+n+1,cmp);//按区间结束时间从小到大排序

int endTemp=ses[1].end;//记录第1个区间结束时间

 int ans=1;//累加第1个区间

for(int i=2;i

if(endTemp

endTemp=ses[i].end;//记录上一个区间结束时间

ans++;//由于按区间结束时间从小到大排序,因此每次找到的下一区间都是结束最早的

}

}

cout

}

2023暑假班数学思维大纲

●高斯算法    ●图中填数    ●算式谜语    ●平均数问题        ●植树问题

●妙算技巧    ●拆数技巧    ●页码问题    ●高级鸡兔同笼     ●年龄问题

●行程问题    ●行走路线问题    ●组合图形   ●工程问题   ●整除与剩余问题

●周期问题    ●天平问题     ●买卖问题    ●非十进制    ●牛吃草

说明:实际课程根据上课进度略有调整。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OZ4OFF_dHpL0J2a85hdlL87g0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券