区间贪心:

  • 每次看完节目,使得剩余时间尽可能的长
  • 选择最早结束的电影来看

题目描述不够清晰或者说有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;
}