最新消息:680元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

信息学奥赛题库- 【例题1】活动安排

C++ 少儿编程 1026浏览 0评论

友情提示:680元/半年,儿童学编程,就上码丁实验室

【题目描述】

设有$n$个活动的集合$E={1,2,…,n}$,其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活动$i$都有一个要求使用该资源的起始时间$s_i$和一个结束时间$f_i$,且$s_i <f_i$。如果选择了活动$i$,则它在半开时间区间$[s_i, f_i)$内占用资源。若区间$[s_i, f_i)$与区间$[s_j, f_j)$不相交,则称活动$i$与活动$j$是相容的。也就是说,当$s_i≥f_j$或$s_j≥f_i$时,活动$i$与活动$j$相容。选择出由相互兼容的活动组成的最大集合。

【输入】

第$1$行一个整数$n(n ≤ 1000)$,接下来$n$行,每行两个整数$s_i$和$f_i$。

【输出】

输出尽可能多的互相兼容的活动个数。

【输入样例】

4
1 3
4 6
2 5
1 7

【输出样例】

2

您必须 登录 才能发表评论!