将活动按照结束时间单调递增排序
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm>using namespace std;struct node {int b,e; }a[1000],temp;int cmp(node x,node y) {return x.e<y.e; }int main() {int i,j,n,p,q,x;while(~scanf("%d",&n)){int count=0;for(i=0;i<n;i++)scanf("%d%d",&a[i].b,&a[i].e);sort(a,a+n,cmp);x=a[0].e;for(j=1;j<n;j++){if(a[j].b>=x) //如果开始时间等于前一个结束时间,就可以举办 {count++;x=a[j].e;}}printf("%d\n",count+1); //+1是因为,x是从第一个结束时间开始的,那么他肯定举办了第一次 }return 0; }/** 5 1 3 2 5 4 7 6 9 8 10 **/