zoukankan      html  css  js  c++  java
  • 1076-机器狗组装费用

    描述

     

    sed同学最近迷上了制造机器狗,购置了大量所需零件,零件可以组装为一个组件,这些组件或零件又可以组装为一个大的组件。在制造机器狗中,组件或零件只能两两进行组装,组装的顺序任意。在机器狗中,每个零件都有一个组装成本,每次组装一个组件的费用为各个零件组装成本之和。给定各个零件组装成本(单位为元),你的任务是帮助sed计算他至少花费多少费用。

    输入

     

    第一行包括一个整数N,表示机器狗零件数(1≤N≤10000)

    第二行为N个正整数,表示每个机器狗零件组装成本(单位为元),整数之间用空格隔开。

    输出

     

    输出仅一行,即机器狗组装的最少费用。

    注意:输出部分的结尾要求包含一个多余的空行。

    样例输入

    10

    1 2 3 4 5 6 7 8 9 0

    样例输出

    136

    #include<iostream>
    #include<list>
    using namespace std;
    
    list<int>A;
    list<int>::iterator pt;
    list<int>::iterator pr;
    
    int sum,a,n,i,k;
    
    int main()
    {
        while(scanf("%d",&n)!=EOF)
        {
            A.clear();
            for(i=0;i<n;i++)
            {
                scanf("%d",&a);
                A.push_back(a);
            }
            A.sort();
            sum=0;
            while(A.size()>1)
            {
                pt=A.begin();
                pr=A.begin();
                pr++;
                k=((*pr)+(*pt));
                sum+=k;
                A.pop_front();
                A.pop_front();
                pt=A.end();
                pt--;
                if(*pt<=k) A.push_back(k);
                else
                {
                    for(pt=A.begin();pt!=A.end();pt++)
                    {
                        if((*pt)>k)
                        {
                            A.insert(pt,k);
                            break;
                        }
                    }
                }
            }
            cout<<sum<<endl;
        }
        return 0;
    } 
    

      

  • 相关阅读:
    组合继承
    包装明星——封装
    多种添加公用方法的方式
    专有扩展
    插入标记
    mac 命令操作
    php(apache)切换版本
    SqlServer索引+约束篇章
    sqlserver 常用语法
    C# 通用数据访问类
  • 原文地址:https://www.cnblogs.com/Rosanna/p/3436853.html
Copyright © 2011-2022 走看看