一些画布,每块有其大小,一开始都是白的,你任意将它们排序,然后一次操作可以选择一段连续的相同颜色的画布,从中任选一个位置,左侧涂上任意一种颜色,右侧涂上另一种。消耗是这一段画布的总的大小。问你要将所有画布着上不同的颜色的最小花费。

从后向前考虑,其实相当于是将一些一开始不同的画布两两合并,代价是两者之和,然后新生成的画布是两者之和,问最小花费。

由于你可以随便排序,所以其实是NOIP合并果子。

#include<cstdio>
#include<queue>
using namespace std;
typedef long long ll;
int T,n;
priority_queue<ll,vector<ll>,greater<ll> >Heap;
int main(){
// freopen("c.in","r",stdin);
int x;
scanf("%d",&T);
for(;T;--T){
while(!Heap.empty()){
Heap.pop();
}
ll ans=0;
scanf("%d",&n);
for(int i=1;i<=n;++i){
scanf("%d",&x);
Heap.push((ll)x);
}
while(Heap.size()>1){
ll A=Heap.top(); Heap.pop();
ll B=Heap.top(); Heap.pop();
ans+=(A+B);
Heap.push(A+B);
}
printf("%lld\n",ans);
}
return 0;
}

最新文章

  1. Android 多个listview的实现
  2. 【转】Java面试宝典2015版(绝对值得收藏超长版)(一)
  3. WEB-INF&amp; 绝对路径vs相对路径
  4. Protege汉字不能正常显示问题
  5. 【Unity3D】自动寻路(Nav Mesh Agent组件)
  6. 《Effective C++》学习笔记条款13 以对象管理资源
  7. Android开发之漫漫长途 番外篇——自定义View的各种姿势2
  8. c# &amp;sqlserver
  9. Vue.js 2.x笔记:服务请求axios(8)
  10. 2.2JAVA基础复习——JAVA语言的基础组成运算符和语句
  11. vmware install win8 and server2012 problem
  12. Python快速学习01:Eclipse上配置PyDev &amp; &#39;Hello World !&#39;
  13. kali linux wifi破解(aircrack)
  14. SQL Server 2014 新特性——内存数据库(转载)
  15. 关于cocos2dx 关键字的问题
  16. nodeJs学习过程之一个图片上传显示的例子
  17. (转)Python学习笔记系列——Python是一种纯粹的语言
  18. AngularJS是什么?
  19. easyui —— footer
  20. etherboot无盘启动

热门文章

  1. 取石子游戏 HDU2516(斐波那契博弈)
  2. A题 hdu 1235 统计同成绩学生人数
  3. linux c 执行新程序
  4. 一个无线通信类投稿的期刊list
  5. PhysX SDK src
  6. ICTPOS3.0 词性标注集
  7. C基础 万能动态数组
  8. REST,Web 服务,REST-ful 服务
  9. C# 笔记——数据类型
  10. Laravel artisan commands