xdoj--1144 (合并模板)--有趣的优先队列(优先队列默认权值最大的数在前面)
我觉得这道题出的很好 区别于“哈夫曼树”
因为事之多合并k个 理论说尽可能多合并。
然后我们看一个简单的例子
4 3
1 2 3 4 ——》6 4——》10 (6+10)=16;
1 2 3 4 ——》3 3 4---》 10 (3+10)=13;
除了保证合并树最小的数最底层 也要保证每个数的高度最低
#include <cstdio>
#include <algorithm>
#include <queue>
using namespace std;
typedef long long LL;
priority_queue <LL,vector <LL>, greater <LL> > q;//注意大整数
int n,k;
int main ()
{
while (~scanf ("%d %d",&n,&k)) {
for (int i=;i<=n;i++) {
LL x; scanf ("%lld",&x);
q.push(x);
}
int t=(n-)/(k-);
int p=n-(k-)*t;
LL tmp=;
for (int i=;i<=p&&p!=;i++) {
tmp+=q.top(); q.pop();// 先合并不足一次合并为k的
}
LL ans=tmp;
if (p!=) q.push(tmp);
for (int i=;i<=t;i++) {
tmp=;
for (int j=;j<=k;j++) {
tmp+=q.top(); q.pop();
}
ans+=tmp;
q.push(tmp);
}
q.pop();
printf ("%lld\n",ans);
}
return ;
}
xdoj--1144 (合并模板)--有趣的优先队列(优先队列默认权值最大的数在前面)的更多相关文章
- 【bzoj1977】[BeiJing2010组队]次小生成树 Tree 最小生成树+权值线段树合并
题目描述 求一张图的严格次小生成树的边权和,保证存在. 输入 第一行包含两个整数N 和M,表示无向图的点数与边数. 接下来 M行,每行 3个数x y z 表示,点 x 和点y之间有一条边,边的权值为z ...
- Luogu 1090 合并果子(贪心,优先队列,STL运用)
Luogu 1090 合并果子(贪心,优先队列,STL运用) Description 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆. 每 ...
- 【XDU1144】合并模板
问题 Fate 有 n 个 ACM/ICPC 比赛的模板,每个都是一个独立的 PDF 文件.为了便于打印,万神希望将这些模板合并成一个 PDF 文件.万神有一个工具,可以将至多 k 个 PDF 文件合 ...
- C# 创建邮件合并模板并合并文本、图片
对于Word中的邮件合并功能,用户可以将邮件合并后的结果文档保存并打印,也可以通过邮件的形式发送,在很多场合需要使用到此功能.那对于编程人员,我们也可以在C#语言环境中通过代码的形式来实现.根据需要先 ...
- Java 在Word中创建邮件合并模板并合并文本和图片
Word里面的邮件合并功能是一种可以快速批量操作同类型数据的方式,常见的如数据填充.打印等.其中必不可少的步骤包括用于填充的模板文档.填充的数据源以及实现邮件合并的功能.下面,通过Java程序展示如何 ...
- 权值线段树&线段树合并
权值线段树 所谓权值线段树,就是一种维护值而非下标的线段树,我个人倾向于称呼它为值域线段树. 举个栗子:对于一个给定的数组,普通线段树可以维护某个子数组中数的和,而权值线段树可以维护某个区间内数组元素 ...
- B20J_2733_[HNOI2012]永无乡_权值线段树合并
B20J_2733_[HNOI2012]永无乡_权值线段树合并 Description:n座岛,编号从1到n,每座岛都有自己的独一无二的重要度,按照重要度可以将这n座岛排名,名次用1到 n来表示.某些 ...
- Thymeleaf模板如何获取springMVC返回的model值
Thymeleaf模板如何获取springMVC返回的model值 后台的实现: @RequestMapping("/hello") public String hello(Mod ...
- [bzoj 2733]启发式合并权值线段树
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2733 平衡树待学习.从一个博客学到了合并权值线段树的姿势:http://blog.csdn ...
随机推荐
- AIX 5335端口IBM WebSphere应用服务器关闭连接信息泄露漏洞的修复
今天按要求协助进行漏洞修复,有个“IBM WebSphere应用服务器关闭连接信息泄露漏洞”,一直没太搞清是不是没打补丁引起的问题. 感觉同样的安装有的报这漏洞有的不报,而报的有的是应用端口,有时是控 ...
- django_rq无法监听两个队列问题
django_rq是为django集成redis队列,这个用的少,一般会选择celery,没办法项目中用到了.用起来很简单,配置可以参考官方文档:https://pypi.org/project/dj ...
- SpringMVC中文乱码的解决办法
中文乱码分类: (1)按照请求分类: GET请求乱码 POST请求乱码 (2)按照乱码位置分类 从前台传到后台的数据乱码(存储到数据库中的数据乱码) 从后台传到前台的数据乱码(显示在页面的数据乱码) ...
- 图解前序遍历线索化二叉树,前序线索二叉树遍历,C\C++描述
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- vue-router-2-动态路由配置
const User = { template: '<div>User{{ $route.params.id }}</div>' } const router = new Vu ...
- 《Python》hashlib模块、configparser模块、logging模块
一.hashlib模块 Python的hashlib模块中提供了常见的摘要算法,如md5,sha1等等. 摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的字符串(通 ...
- VS2015 C#调用C++ 托管代码无法调试问题排查
C#引用C++ 部份代码编绎DLL,调试时,无法命中C++ 代码部份,解决方式: 1. 调试-> 选项->调试->常规 : 勾选 [使用托管兼容模式] (同时点击 同级目录 [符号] ...
- 十二. Python基础(12)--生成器
十二. Python基础(12)--生成器 1 ● 可迭代对象(iterable) An object capable of returning its members one at a time. ...
- 6.5C++查找字符串
参考:http://www.weixueyuan.net/view/6394.html 总结: find函数可以在字符串中查找子字符串中出现的位置.该函数有两个参数,第一个参数是待查找的子字符串,第二 ...
- 界面控件DevExpress发布v18.2.5|附下载
DevExpress Universal Subscription(又名DevExpress宇宙版或DXperience Universal Suite)是全球使用广泛的.NET用户界面控件套包,De ...