zoukankan      html  css  js  c++  java
  • 算法笔记-----贪心算法----加里比海盗船--最优装载问题

     1 //program 2-1
     2 #include <iostream>
     3 #include <algorithm>
     4 const int N=1000005;
     5 using namespace std;
     6 
     7 double w[N]; //古董的重量数组
     8 int main()
     9 {
    10     double c;
    11     int n;
    12     cout<<"请输入载重量c及古董个数n:"<<endl;
    13     cin>>c>>n;
    14     cout<<"请输入每个古董的重量,用空格分开: "<<endl;
    15     for(int i=0;i<n;i++)
    16     {
    17       cin>>w[i]; //输入每个物品重量
    18     }
    19     sort(w,w+n); //按古董重量升序排序
    20     double tmp=0.0;
    21     int ans=0; // tmp为已装载到船上的古董重量,ans为已装载的古董个数
    22     for(int i=0;i<n;i++)
    23 {
    24       tmp+=w[i];
    25      if(tmp<=c)
    26      ans++;
    27       else
    28         break;
    29 }
    30     cout<<"能装入的古董最大数量为Ans=";
    31     cout<<ans<<endl;
    32     return 0;
    33 }
    34 
    35 //可以输出古董编号
    36 /**
    37 struct antique{
    38     int id; //古董的编号
    39     double w; //古董的重量
    40 }s[N];
    41 bool cmp(antique a, antique b)//比较函数
    42 {
    43     return a.w < b.w; //指明按照古董重量升序排列
    44 }
    45 int main()
    46 {
    47     double c;
    48     int n;
    49     cout<<"请输入载重量c及古董个数n:"<<endl;
    50     cin>>c>>n;
    51     cout<<"请输入每个古董的重量,用空格分开: "<<endl;
    52     for(int i=0;i<n;i++)
    53     {
    54       s[i].id=i+1;
    55       cin>>s[i].w; //输入每个古董重量,用空格隔开
    56     }
    57     sort(s,s+n,cmp);
    58     double tmp=0.0;
    59     int ans =0;  //ans记录已经装载的古董个数,tmp代表装载到船上的古董的重量
    60     for(int i=0;i<n;i++)
    61     {
    62      tmp += s[i].w;
    63      if(tmp<=c)
    64        ans ++;
    65     else
    66        break;
    67      }
    68     cout<<"能装入的古董最大数量为Ans = ";
    69     cout<<ans<<endl;
    70     cout<<"装入的古董编号为";
    71     for(int i=0;i<ans;i++)
    72     {
    73       cout<<s[i].id<<" ";
    74     }
    75     return 0;
    76 }
    77 **/
  • 相关阅读:
    使用C#直接修改表结构(添加列,删除列)【MS SQL SEVER】
    Nuget-ConsoleExtClass给控制台添加颜色
    Thread线程Join()的使用
    C#将List集合类转换成DataTable-帮助类
    C#动态拼接Linq
    C#使用AutoMapper
    go GOPROXY=http://goproxy.io 设置
    mysql5.6切到5.7(阿里云RDS换到自建库)
    vue学习之----如何在谷歌浏览器中使用vue调试工具
    vue学习之----兄弟组件之间通信方式
  • 原文地址:https://www.cnblogs.com/alimjan/p/8116335.html
Copyright © 2011-2022 走看看