/*
看电视问题——区间贪心
在固定的时间段内尽可能看多的电视节目
思路:选择结束时间最早的
*/
#include<stdio.h>
#include<algorithm>
using namespace std;
const int MAXN = 100 + 10;
struct program{
int startTime;
int endTime;
};
program arr[MAXN];
bool Compare(program a,program b){
return a.endTime < b.endTime;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF){
if(n == 0)
break;
for(int i = 0;i < n; ++i){
scanf("%d%d",&arr[i].startTime,&arr[i].endTime);
}
sort(arr,arr+n,Compare);//按照结束时间排序
int current = 0;
int sum = 0;
for(int i = 0;i < n; ++i){
if(arr[i].startTime >= current){
current = arr[i].endTime;
sum++;
}
}
printf("%d",sum);
}
return 0;
}
贪心算法——看电视
最新推荐文章于 2022-11-21 13:25:53 发布