http://acm.hdu.edu.cn/showproblem.php?pid=2037
最简单的贪心问题,选择不相交的区间问题。《算法竞赛入门经典》153页。
#include <iostream>
using namespace std;
int main()
{
int a[100],b[100];
int n;
int s=0,e=0;
int cont=0;
while(cin>>n&&n!=0){
cont=0;
for(int i=0;i<n;i++)
cin>>a[i]>>b[i];
for(int i=0;i<n;i++)
for(int j=i;j<n;j++){
if(b[i]>b[j]) {
swap(b[i],b[j]);
swap(a[i],a[j]);
}
}
//取第一个
cont++;
s=a[0];
e=b[0];
for(int i=1;i<n;i++){
if(a[i]>=e) {
cont++;
e=b[i];
}
}
cout<<cont<<endl;
}
return 0;
}