区间贪心:
- 每次看完节目,使得剩余时间尽可能的长
- 选择最早结束的电影来看
题目描述不够清晰或者说有bug
- 当前时间和开始时间相同的不可以看,必须要当前时间早于开始时间才可以看(可能是考虑换台的时间)
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=100010;
struct movie{
int begin;
int end;
};
bool compare(movie x,movie y){
return x.end<y.end;
}
movie s[maxn];
int main(){
int n;
while(scanf("%d",&n)!=EOF){
for(int i=0;i<n;i++){
scanf("%d%d",&s[i].begin,&s[i].end);
}
sort(s,s+n,compare);//按照结束时间升序
int sum=0;
int cur=-1;//坑
for(int i=0;i<n;i++){
if(cur<s[i].begin){//坑
cur=s[i].end;//更新当前时间
sum++;
}
}
printf("%d\n",sum);
}
return 0;
}