题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1895

题目大意:类似于这道题UESTC - 1599

就是将所有的数字最后合并为一个数字,但是每次合并需要的消耗值是等于两个数的和,求最小的消耗值。

当然是贪心,每次排序后合并最小的两个值,再题弹出那两个值,压入两值之和。再继续刚才的步骤,直到只要一个了。

用sort肯定是超时的,会自动排序的容器当然是最好的选择。用multiset就行。

AC代码:

 1 #include<iostream>
 2 #include<stdio.h>
 3 #include<set>
 4 using namespace std;
 5 int main()
 6 {
 7     int n;
 8     while(cin>>n)
 9     {
10         if(n==0)break;
11         multiset<int> s;
12         multiset<int>::iterator it;
13         int x;
14         for(int i=0;i<n;i++)
15         {
16             scanf("%d",&x);
17             s.insert(x);
18         }
19         long long int body=0;
20         int t;
21         while(s.size()!=1)
22         {
23             it=s.begin();
24             body+=(*it);
25             t=*it;
26             s.erase(it);
27             it=s.begin();
28             body+=(*it);
29             t+=(*it);
30             s.erase(it);
31             s.insert(t);
32         }
33         cout<<body<<endl;
34     }
35     return 0;
36 }

转载于:https://www.cnblogs.com/ISGuXing/p/7248016.html

UVA-10954 Add All相关推荐

  1. UVA 10954 - Add All

    http://uva.onlinejudge.org/external/109/10954.html 题意: 输入一串数据,拿出两个相加,把和放回去,再拿出两个相加,把和放回去--依次循环,最后找出最 ...

  2. UVA 10954 Add All

    UVA_10954 看了别人解题报告之后发现累加的过程可以这样操作,每次取最小的两个元素加和,然后把和当作一个新元素放进集合,直到剩下一个元素,然后把中间结果加起来就是要求的结果.实际上这个题目就是哈 ...

  3. UVa 10954 Add All 贪心

    贪心   每一次取最小的两个数,注意相加的数也要算' #include<cstring> #include<iostream> #include<cstdio> # ...

  4. uva 10954——Add All

    <p>题意:给定一个序列,然后从中选择两个数,相加后放入原来的序列,消耗的费用为两个数 的和,问最小的代价.</p><p> </p><p>思 ...

  5. π-Algorithmist分类题目(3)

    原题网站:Algorithmist,http://www.algorithmist.com/index.php/Main_Page π-Algorithmist分类题目(3) Probability ...

  6. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

  7. uva10954 - Add All(multiset功能)

    题目:10954 - Add All 题目大意:求n个数的和,可是有点不一样的是题目要求计算最少花费.每次两个数相加,得到的那个数就是每次计算的cost. 解题思路:之前没有想到用multiset,自 ...

  8. 提取了下刘汝佳推荐的题号...

    今天闲来没事上uva oj提取了下刘汝佳推荐的acm题号,原始数据如下: Volume 0. Getting Started    10055 - Hashmat the Brave Warrior ...

  9. 训练指南第二章-基础问题

    训练指南第二章-基础问题 P170 2 / 4 Problem A UVA 10943 How do you add? 1 / 2 Problem B UVA 10780 Again Prime? N ...

  10. mysql数据库出现回滚_mysql数据库回滚

    在应用$mysqli时,因没常用到数据回滚,老忘,整理下,做个记录. $mysqli->autocommit(FALSE);//自动提交设置关闭 $mysqli->query(" ...

最新文章

  1. jwebsocket
  2. IO流(IO异常处理方式)
  3. 大型网站后台架构的演变
  4. java collection详解_java 7 collection 详解(一)
  5. 前端学习(3290):react hook state-hook传入对象+1操作
  6. 公招网报照片审核处理工具_消防员招录报名照片处理工具使用说明
  7. python语言goto_如何在 Python 中实现 goto 语句
  8. Android学习笔记(一)——Android应用的界面编程
  9. UBUNTU14.0.4安装eclipse
  10. html段落简字前带繁字,简繁体字对照表,抄佛经的师兄们必藏
  11. Unable to find a single main class from the following candidates 。。。
  12. Gsensor驱动概述
  13. Python字符串底层原理
  14. UE在.CS文件中打印Log(日志)
  15. Paper:GPT之《Improving Language Understanding by Generative Pre-Training》翻译与解读
  16. ChatGPT初体验-帮我写一本奇幻冒险小说(Aethia的勇士)
  17. 你离黑客的距离,就差这20个神器
  18. php常用模块,PEAR:常用模块-PHP教程,PHP应用
  19. sql 除法中如何防止被除数为0,以及SUM和舍入为指定的小数位数函数
  20. 双语矩阵论课程笔记(1)—— 常用术语翻译

热门文章

  1. UA MATH566 统计理论4 贝叶斯统计基础1
  2. 超图桌面版创建基本三维对象(点、线、面、体、粒子系统)的基本操作
  3. Tomcat学习总结
  4. SNMP协议介绍和操作截图
  5. kernel笔记——块I/O
  6. JavaScript中split() 使用方法
  7. Python 全栈开发:python字符串切片
  8. VS Web.config 密码加密加密
  9. Oracle的时区问题
  10. 关于webcontrols的TreeView中转义符的处理问题