码迷,mamicode.com
首页 > 编程语言 > 详细

贪心算法入门

时间:2020-02-20 17:14:10      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:ble   value   nbsp   amp   style   image   pre   cout   mamicode   

贪心算法例题:

  技术图片

 

        技术图片

 

 代码:

  

 1 /*
 2     取糖果
 3     输入:4 15    //四箱,能装的重量为15 
 4                 //价值,重量 
 5          100 4
 6          412 8
 7          266 7
 8          591 2
 9     输出:
10         1193.0 
11 */
12 
13 #include<iostream>
14 #include<algorithm>
15 using namespace std;
16 
17 struct candy{
18     double v,m;//v是价值,m是重量 
19     
20 }candies[100];
21 
22 bool bmp(candy &a,candy &b){
23     return (a.v/a.m)>(b.v/b.m);
24 }
25 
26 int main(){
27     int n,i;
28     double sum;
29     double value=0;
30     cout<<"请输入糖果箱数n"<<endl;
31     cin>>n;
32     cout<<"请输入能容纳的总重量"<<endl;
33     cin>>sum;
34     
35     for(i=1;i<=n;i++)
36         cin>>candies[i].v>>candies[i].m;
37     sort(candies+1,candies+1+n,bmp);
38     for(i=1;i<=n;i++)
39         cout<<candies[i].v<<" ";
40     for(i=1;i<=n;i++)
41         {
42             if(sum>=candies[i].m)//看能否全装
43                 {
44                     value=value+candies[i].v;
45                     sum=sum-candies[i].m;        
46                 } 
47             else                //需要分装 
48                 {
49                     value=value+sum*(candies[i].v/candies[i].m);
50                     break;
51                     
52                 }
53             
54             
55             
56         }
57     cout<<value<<endl;
58     
59     return 0;
60 }

总结:

  贪心算法通过每一步最优,来达到总体最优。(有时候贪心算法不一定能取到最优解)

  

  

贪心算法入门

标签:ble   value   nbsp   amp   style   image   pre   cout   mamicode   

原文地址:https://www.cnblogs.com/printwangzhe/p/12336257.html

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