码迷,mamicode.com
首页 > 其他好文 > 详细

贪心法基础题目 HDU

时间:2015-02-05 00:41:55      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:

HDU2037:

链接:http://acm.hdu.edu.cn/showproblem.php?pid=2037

题解:

        贪心算法:在对问题求解时,总是作出在当前看来是最好的选择。也就是说,不从整体上加以考虑,它所作出的仅仅是在某种意义上的局部最优解(是否是全局最优,需要证明)。若要用贪心算法求解某问题的整体最优解,必须首先证明贪心思想在该问题的应用结果就是最优解!!

 

        本题是贪心法的一个最简单的例子,将结束时间按从小到大排好序,然后寻找下一个开始时间大于等于上一个结束时间的,如此往复,即可解决问题

技术分享
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<string>
 5 #include<algorithm>
 6 #include<vector>
 7 #include<cmath>
 8 using namespace std;
 9 const int maxn=100+10;
10 typedef struct
11 {
12     int ts;
13     int te;
14 }t;
15 t p[maxn];
16 const int cmp(const t s1,const t s2)
17 {
18     return s1.te<s2.te;
19 }
20 int main()
21 {
22     int n;
23     while(cin>>n)
24     {
25         if(n==0)
26             break;
27         for(int i=0;i<n;i++)
28             cin>>p[i].ts>>p[i].te;
29             sort(p,p+n,cmp);
30             int cnt=1;
31             for(int i=0;i<n;i++)
32             {
33                 for(int j=i+1;j<n;j++)
34                     if(p[i].te<=p[j].ts)
35                 {
36                     i=j;
37                     cnt++;
38                     continue;
39                 }
40             }
41            cout<<cnt<<endl;
42     }
43     return 0;
44 }
View Code

 

贪心法基础题目 HDU

标签:

原文地址:http://www.cnblogs.com/wolf940509/p/4273619.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!