HDU 2037
2014-04-30 18:35
267 查看
思路:在可选的工作中,每次都选择结束时间最早的工作,就是贪心的思想,因为结束时间越早可选的工作也就越多
#include<stdio.h> #include<stdlib.h> typedef struct { int start; int end; }Node; Node a[101]; int comp(const void *a,const void *b) { return (*(Node *)a).end-(*(Node *)b).end; } int main() { int n,i,temp,sum; //freopen("in.c","r",stdin); while(~scanf("%d",&n)&&n) { for(i = 0;i < n;i ++) scanf("%d%d",&a[i].start,&a[i].end); qsort(a,n,sizeof(a[0]),comp); temp = -1; sum = 0; for(i = 0;i < n;i ++) { if(temp <= a[i].start) { sum++; temp = a[i].end; } } printf("%d\n",sum); } return 0; }