百炼4151电影节贪心算法基础入门题

按结束时间排序,只要不和前面的电影冲突就选择看这个电影,因为是按结束时间排序,所以结束的越早剩下时间越多,就可以选泽更多的电影,满足本题目的需求


#include<cstdio>
#include<algorithm>
using namespace std;
struct t
{
   long long  a,e;//a是开始时间,e是结束时间
};
 
struct q
{
    bool operator()(const t & a1,const t & a2){
         return a1.e<a2.e;//按结束时间排序
    }
};
 
t tt[50005];
int main()
{
    long long  n,sum=1,i;
    scanf("%lld",&n);
    for(i=0;i<n;i++)
        scanf("%lld %lld",&tt[i].a,&tt[i].e);
    sort(tt,tt+n,q());
    int x=tt[0].e;
    for(i=1;i<n;i++)
        if(tt[i].a>=x){
            x=tt[i].e;
            sum++;
        }
    printf("%lld\n",sum);
    return 0;
}


全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务