题面

BZOJ
洛谷

题解

合并果子都是不知道多久以前做过的了。现在才知道原来本质就是一棵哈夫曼树啊。
这题我们仔细研究一下题目的意思。
就是让你构造一个KKK叉树,所有的权值都放在叶子节点上,求权值乘深度和的最小值。
如果K=2" role="presentation">K=2K=2K=2,我们发现这就是合并果子。
K>2K>2K>2,那么不过就是合并果子加强版,把原来每次选择最小的两个换成选择最小的KKK个就好了。
因为可能在最后一次选的时候选不满,所以提前补一些0" role="presentation">000,进去让他能够选满就好了。

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<set>
#include<map>
#include<vector>
#include<queue>
using namespace std;
#define ll long long
#define RG register
inline ll read()
{RG ll x=0,t=1;RG char ch=getchar();while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();if(ch=='-')t=-1,ch=getchar();while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();return x*t;
}
priority_queue<pair<ll,int>,vector<pair<ll,int> >,greater<pair<ll,int> > >Q;
ll ans;
int n,K;
int main()
{n=read();K=read();for(int i=1;i<=n;++i)Q.push(make_pair(read(),0));while((n-1)%(K-1)!=0)Q.push(make_pair(0,0)),++n;while(Q.size()>=K){pair<ll,int> u=make_pair(0,0),v;for(int i=1;i<=K;++i){v=Q.top();Q.pop();u.first+=v.first;u.second=max(u.second,v.second+1);}ans+=u.first;Q.push(u);}printf("%lld\n%d\n",ans,Q.top().second);return 0;
}

【BZOJ4198】【NOI2015】荷马史诗(贪心,Huffman树)相关推荐

  1. [NOI2015]荷马史诗【哈夫曼编码】

    [NOI2015]荷马史诗 推荐一篇题解 (感觉自己讲不清楚所以不如直接粘题解) 观察之后发现这就是哈夫曼编码,于是按照编码方式构造即可. #include <bits/stdc++.h> ...

  2. 【BZOJ4198】荷马史诗,贪心之k叉哈夫曼树

    传送门 思路: 很早以前听说过这个题 据说是一个很强的贪心(?) 然后一上来就往贪心上去想--(其实一开始知道算法不是很好,因为你不会走弯路了) 发现这玩意好像是个合并果子的模型-- 也不知道是怎么转 ...

  3. P2168 [NOI2015] 荷马史诗(哈夫曼编码树)

    传送门 文章目录 题目描述 解析 细节 代码 题目描述 解析 其实就是构造一棵树 另所有带权点都为叶子节点 其代价为权值与深度的乘积 求最小代价及最小代价下的最小深度 可以看成一开始有n棵小树 每次把 ...

  4. NOI2015 荷马史诗

    题目链接:戳我 首先看出来这是一个哈夫曼树! 然后就按照这里面哈夫曼树那一点说的,就可以A掉这个题啦 #include<iostream> #include<cstdio> # ...

  5. 【Huffman树】【贪心】【NOI 2015】【bzoj 4198】荷马史诗

    4198: [Noi2015]荷马史诗 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 127 Solved: 80 Description 追逐影子的 ...

  6. [Huffman树] aw149. 荷马史诗(哈夫曼模型+贪心)

    文章目录 1. 题目来源 2. 题目解析 1. 题目来源 链接:149. 荷马史诗 2. 题目解析 k叉哈夫曼树问题. n 个叶子节点合并成 1 个点,总共合并减少 n-1 个点,每次合并都会减少 ( ...

  7. NOI2015 Day2 T1 荷马史诗(洛谷P2168)

    题目描述 追逐影子的人,自己就是影子 --荷马 Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的<荷马史诗>.但是由<奥德赛&g ...

  8. 荷马史诗【k叉哈夫曼树】

    题目描述 追逐影子的人,自己就是影子. --荷马 达达最近迷上了文学. 她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的<荷马史诗>. 但是由<奥德赛>和 ...

  9. 洛谷P2168 荷马史诗 [NOI2015]

    题目描述 追逐影子的人,自己就是影子 --荷马 Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的<荷马史诗>.但是由<奥德赛&g ...

  10. (HYSBZ - 4198)荷马史诗

    (HYSBZ - 4198)荷马史诗 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 1376 Solved: 725 Description 追逐影子 ...

最新文章

  1. B/S,C/S简单介绍
  2. 趣链 BitXHub跨链平台 (4)跨链网关“初介绍”
  3. 旅行商问题c语言,【算法作业】用回溯法求解旅行商问题
  4. 安装adobe acrobat导致回滚
  5. php正则过滤html标签_空格_换行符的代码,PHP 正则过滤 html 标签、空格、换行符的代码 (文章格式化)...
  6. linux模拟内存数据落盘,Linux:保证数据安全落盘
  7. Python计算并可视化商品批发时商家收益和顾客节省情况
  8. c html 转 pdf,HTML 转 PDF
  9. pythom打包文件太大_PDF太大,不让上传怎么办?教你1分钟将100M的PDF变成10M
  10. 移动硬盘安装双系统windows10和ubuntu18.04
  11. Ajax传参里面含有特殊字符
  12. python线程池ThreadPoolExecutor和as_completed的用法示例
  13. 吴晓波罗振宇2019跨年演讲感想
  14. 51nod - 1378 - 夹克老爷的愤怒
  15. 1480_人月神话阅读笔记_开篇
  16. 服务器硬防和软防是什么意思?服务器软件防火墙
  17. 独享云虚拟主机和云服务器,共享虚拟主机和独享虚拟主机的区别
  18. 房产证.房屋他项权证.车辆登记证.报到证.企业资质等图片展览.
  19. AOSP>设计>测试(第二节)测试开发工作流
  20. 服务器密码修改后数据库无法登录,关于 mysql5 改密码后不能登录问题的解答-数据库专栏,MySQL...

热门文章

  1. [山东科技大学OJ]1653 Problem C: 藏头诗
  2. 美式期权定价python_美式期权baw定价的python实现
  3. 路由器登陆192.168.1.1打开后出现移动登陆页面
  4. 零基础学SVM—Support Vector Machine(一)
  5. 宁录哨兵机器人_单纯靠速度快银就打得过哨兵机器人?想多了,怼上这一版就不行!...
  6. 修改postgresql库表的owner
  7. java excel 列_java实现excel行列转换
  8. Yii2 常用操作总结
  9. oracle12c启动ODM,Oracle 12c impdp 导入ORA-17500: ODM err:Communication error on send 错误处理方法...
  10. mysql 获取当天0点 和 当天23点59分59秒