第一次写 也不知道怎么写哈哈
题目链接:今年暑假不AC
思路:简单的贪心,题目说要尽量多看节目,那就是先看结束时间越早的,看的就越多。
AC代码如下:
#include<bits/stdc++.h>
using namespace std;
struct jm
{
int st;
int en;
}a[105];
bool cmp(jm a,jm b)
{
return a.en<b.en;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF&&n!=0)
{
int cnt=0,k;
for(int i=0;i<n;i++)
{
scanf("%d %d",&a[i].st,&a[i].en);
}
sort(a,a+n,cmp);//把节目结束时间从小到大排序
cnt=1;
k=a[0].en;//第一个节目结束时间
for(int i=1;i<n;i++)
{
if(a[i].st>=k)//重点在这里,后一个节目的开始时间必须在前一个节目结束时间之后
{
cnt++;
k=a[i].en;//如果这个节目可以看,更新结束时间
}
}
printf("%d\n",cnt);
}
return 0;
}