UVa10954 Add All (优先队列)
来源:互联网 发布:瑞安法院淘宝拍卖网 编辑:程序博客网 时间:2024/05/22 16:00
题目链接:https://vjudge.net/problem/UVA-10954
题目大意:有n个数的集合S,每次可以从S中删除两个数,然后把它们的和放回集合,直到剩下一个数。每次操作的开销等于剩下的两个数之和,求解最小的总开销。
题目思路:写一个堆动态维护一下,直接偷懒stl来一发优先队列。
代码:
#include <bits/stdc++.h>using namespace std;struct node{ int x; bool operator<(const node&a)const{//确立优先级,队列中的最小的元素排在最前边 return a.x<x; }};int main(){ priority_queue<node>Q; int n; node s; while(~scanf("%d",&n)){ if(!n) break; for(int i=0;i<n;i++){ scanf("%d",&s.x); Q.push(s); } int ans=0; while(Q.size()>1){ node tmp1=Q.top();Q.pop(); node tmp2=Q.top();Q.pop(); ans+=(tmp1.x+tmp2.x); node tmp; tmp.x=tmp1.x+tmp2.x; Q.push(tmp); } //node tmp=Q.top(); Q.pop(); //ans+=tmp.x; printf("%d\n",ans); }}
阅读全文
1 0
- UVa10954 Add All (优先队列)
- UVA10954 Add All (优先队列)
- [贪心&&优先队列]uva10954 Add All
- uva10954 - Add All
- uva10954 Add All
- uva10954 - Add All
- UVa 10954 Add All ( 优先队列 )
- UVA Add All(优先队列)
- uva10954 - Add All(multiset函数)
- Uva10954——Add All
- UVA10954 :Add All(全部相加)
- UVA10954哈夫曼树与优先队列
- UVA 10954 Add All (贪心 + 优先队列)
- uva - 10954 - Add All(优先队列、哈夫曼编码思想)
- UVA - 10954 Add All(贪心+优先队列)
- UVa 10954 - Add All 贪心+优先队列
- Add All -uva优先队列的应用
- UVA - 10954 Add All 优先队列
- ArcEngine中的ICommand和ITool
- Event—跟随鼠标移动的div实例阻止冒泡
- IE 10 禁用多点触摸放大缩小页面
- java与mysql链接基础,知识点!
- 单例模式
- UVa10954 Add All (优先队列)
- LegendShop教您,电商系统选型要注意什么!
- Hone Hone Clock
- 2017年Android百大框架排行榜
- 浅谈Cordova框架
- swift 中 as as! as? 的区别0.0
- [Android 编译] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程
- 一个项目学会前端实现登录拦截
- 『ORACLE』RAC增加节点(11g)