题目意思就不多说了。这是贪心算法的题目,求最优解我们很容易会想到贪心算法,这道题目是根据结束时间排序来慢慢找到最优解
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
struct program
{
int b, e;
}arr[110];
bool cmp(program a, program b)
{
return a.e<b.e||(a.e==b.e&&a.b<b.b);
}
int main()
{
int n,i,ans,k;
while(scanf("%d",&n),n)
{
for(i=0;i<n;i++)
scanf("%d%d",&arr[i].b,&arr[i].e);
sort(arr,arr+n,cmp);
ans=1,k=0;
for(i=1;i<n;i++)
{
if(arr[i].b>=arr[k].e)
{
ans++;
k=i;
}
}
printf("%d\n",ans);
}
return 0;
}