这是一道经典的贪心,贪心策略就是按照结束时间来进行,结束越早的放到越前面,放的时候在判断一下容斥即可。
#include <bits/stdc++.h>
using namespace std;
struct tv
{
int s;
int e;
}a[105];
int cmp(const void*a,const void*b){
if (((tv*)a)->e == ((tv*)b)->e)
return ((tv*)a)->s - ((tv*)b)->s;
return ((tv*)a)->e - ((tv*)b)->e;
}
int n;
int main(){
while (cin>>n&&n){
for(int i=0;i<n;i++){
cin>>a[i].s>>a[i].e;
}
qsort(a,n,sizeof(a[1]),cmp);
int num=0,l=0;
for (int i=0;i<n;i++){
if (l<=a[i].s){
num++;
l=a[i].e;
}
}
cout<<num<<endl;
}
return 0;
}