百炼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; }