贪心:
#include<stdio.h> #include<stdlib.h> #define MAXN 100000 + 100 int Ts[MAXN], Te[MAXN], r[MAXN], n, num; int cmp(const void *_p, const void *_q) { int *p = (int *)_p; int *q = (int *)_q; return Te[*p] - Te[*q]; } void init() { while(~scanf("%d",&n)) { for(int i = 0; i < n; i ++) { scanf("%d%d",&Ts[i],&Te[i]); r[i] = i; } qsort(r,n,sizeof(r[0]),cmp); num = 1; int t = 0; for(int i = 1; i < n; i ++) { if(Ts[r[i]]>Te[r[t]]) { num ++; t = i; } } printf("%d\n",num); } } int main() { init(); return 0; }