HDU2037 今年暑假不AC

题目链接

题目大意:

    有n个想看的节目,输入每个节目的开始时间和结束时间,输出最多看多少个节目?

 

思路:

    就是最经典的贪心,按结束时间排序就好。

 

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 
 5 using namespace std;
 6 
 7 int n,ans;
 8 
 9 struct node
10 {
11     int st,ed;
12 }perf[108];
13 
14 int comp(const node &a,const node &b)
15 {
16     return a.ed<b.ed;
17 }
18 
19 int main()
20 {
21     scanf("%d",&n);
22     while(n)
23     {
24         memset(perf,0,sizeof(perf));
25         for(int i=1;i<=n;i++)
26         {
27             scanf("%d%d",&perf[i].st,&perf[i].ed);
28         }
29         sort(perf+1,perf+1+n,comp);
30         ans=0;
31         int tem=0;
32         for(int i=1;i<=n;i++)
33         {
34             if(perf[i].st>=tem)
35             {
36                 ans++;
37                 tem=perf[i].ed;
38             }
39         }
40         printf("%d\n",ans);
41         scanf("%d",&n);
42     }
43     return 0;
44 }

 

posted @ 2018-10-31 00:06  liqgnonqfu  阅读(137)  评论(0编辑  收藏  举报