题意:典型的贪心例题,直接按照已经准备的贪心策略,对结束时间按照从小到大排序,直接水即可;
#include<algorithm> #include<iostream> #include<queue> #include<stack> #include<map> #include<set> #include<vector> #include<cstring> #include<cstdio> using namespace std; typedef struct node { int x; int y; friend bool operator< (node b,node c) { if(b.y==c.y) return b.y>c.y; return b.y<c.y; } } node; node a[1005]; int main() { int m; while(scanf("%d",&m)==1&&m!=0) { for(int i=1; i<=m; i++) { scanf("%d %d",&a[i].x,&a[i].y); } sort(a+1,a+m+1); int sum=1; node t; t.x=a[1].x; t.y=a[1].y; for(int i=2; i<=m; i++) { if(a[i].x<t.y) { continue; } else { sum++; t=a[i]; } } printf("%d ",sum); } return 0; }