杭电OJ2037
这里参考算法笔记的区间贪心问题
注意排序算法中起始时间从大到小,当起始时间相同时,要把结束时间按照从小到大排序,这样能够选取小区间从而不冲突的区间数更多
#include<cstdio>
#include<algorithm>
using namespace std;
struct project{
int left,right;
}I[100];
bool cmp(project a,project b){
if(a.left!=b.left) return a.left>b.left;
else return a.right<b.right;
}
int main(){
int n;
while(scanf("%d",&n)!=EOF){
if(n==0){
break;
}
for(int i =0;i<n;i++){
scanf("%d %d",&I[i].left,&I[i].right);
}
sort(I,I+n,cmp);
int count =1;
int sx = I[0].left;
for(int i =1;i<n;i++){
if(I[i].right<=sx){
sx = I[i].left;
count++;
}
}
printf("%d\n",count);
}
return 0;
}