HDU2037 今年暑假不AC 贪心

  这题有2个时间,分别是开始时间和结束时间,如果按照开始时间排序显然不行,那就得是按照结束时间排序了,至于为什么,就是i%^*^%$^##^#$&$。

  然后还有个nowTime,排序后,如果当前时间小于开始时间的话,那么就可以观看该节目。

 1 #include <stdio.h>
 2 #include <iostream>
 3 #include <algorithm>
 4 using namespace std;
 5 struct node
 6 {
 7     int begin,end;
 8 }a[100+10];
 9 typedef struct node ob;
10 bool cmp(ob aa,ob bb)
11 {
12     return aa.end<bb.end;
13 }
14 int main()
15 {
16     int n,i,j,nowTime,res;
17     while(~scanf("%d",&n)&&n)
18     {
19         for(i=0;i<n;++i)
20         {
21             scanf("%d%d",&a[i].begin,&a[i].end);
22         }
23         sort(a,a+n,cmp);
24         nowTime=0;
25         res=0;
26         for(i=0;i<n;++i)
27         {
28             if(a[i].begin>=nowTime)
29             {
30                 res++;
31                 nowTime=a[i].end;
32             }
33         }
34         printf("%d\n",res);
35     }
36     return 0;
37 }
原文地址:https://www.cnblogs.com/symons1992/p/2940379.html