贪心算法的入门题目:这类问题就是最优活动安排子集数,自己一开始想利用活动的时间长短来排序,可能性有但实现起来应该很复杂,所以,以后对这类问题要按照活动的结束时间来排序。
/*************************************************************************
File Name: 2037.cpp
Author: yubo
Mail: yuzibode@126.com
Created Time: 2014年04月13日 星期日 04时36分23秒
学习重点:
************************************************************************/
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<iostream>
using namespace std;
struct Node{
int s;
int e;
int time;
}P[101];
bool cmp(const Node&a,const Node&b){
return a.e<b.e;
}
int main()
{
// freopen("in.txt","r",stdin);
int n,i,j,count;
while(scanf("%d",&n),n){
for(i=0;i<n;i++){
scanf("%d%d",&P[i].s,&P[i].e);
P[i].time=P[i].e-P[i].s;
}
sort(P,P+n,cmp);
int t1=P[0].e;
count=1;
for(i=1;i<n;i++){
if(P[i].s>=t1){
t1=P[i].e;
count++;
}
}
printf("%d\n",count);
}
}