【bzoj4198】【Noi2015】荷马史诗
4198: [Noi2015]荷马史诗
Time Limit: 10 Sec Memory Limit: 512 MB
Submit: 2200 Solved: 1169
[Submit][Status][Discuss]
Description
追逐影子的人,自己就是影子。 ——荷马
Input
输入文件的第 1 行包含 2 个正整数 n,k,中间用单个空格隔开,表示共有 n 种单词,需要使用 k 进制字符串进行替换。
Output
输出文件包括 2 行。
题解:
huffman树相关知识:
1.带权路径长度:$W_{PL} = \sum_{i=1}^{n} w_{i} l_{i}$ 其中$w_{i}$为每个叶子结点的权值,$l_{i}$为每个叶子结点到根的路径长度;
Huffman即WPL最小的二叉树;
2.Huffman树的构造(先看图):

每次选权值最小的两个点合并并加入一个权值为两个点权值和的新点;
直到只有一个点;(我太弱了所以还没有YY出证明,改天翻wiki吧)
满足WPL最小;
应用:huffman编码:
实际上huffman是为了解决:对字符串加密成二进制串,给出字符串中每个字符出现的次数,由于不能造成歧义所以必须要满足任何一个字符的二进制编码都不是另一个不同字符的二进制编码的前缀,使得整个加密后的二进制串长度最小;
完整的huffman就在上面建出来的树的边加上0 1 ,即变成一个字典树,每个点对应的二进制串即编码
例如权值为3的点的二进制串为:$(0001)_{2}$
回到原题
所以出题人就是想出个huffman树 , 只不过是k叉的;
最长字符串长度最短不是问题,优先队列实现的时候第二关键字为当前根最大深度即可;
k叉有点坑,需要补上(n - n%(k-1)) %(k-1)个权值为0的点;
#include<bits/stdc++.h>
#define ll long long
#define mk make_pair
#define fir first
#define sec second
using namespace std;
const int N=;
int n,k;
typedef pair<ll,ll> pii;
priority_queue<pii,vector<pii>,greater<pii> >q;
int main(){
// freopen("bzoj4198.in","r",stdin);
// freopen("bzoj4198.out","w",stdout);
scanf("%d%d",&n,&k);
for(int i=;i<=n;i++){
ll x;scanf("%lld",&x);
q.push(mk(x,));
}
int lim=(k--(n-)%(k-))%(k-);
for(int i=;i<=lim;i++)q.push(mk(,));
ll ansx=,ansy=;
while(!q.empty()){
ll x=,y=;
for(int i=;i<=k&&!q.empty();i++,q.pop()){
pii u=q.top();
x+=u.fir;
y=max(y,u.sec);
}
y++;
ansx+=x,ansy=max(ansy,y);
if(q.empty())break;
q.push(mk(x,y));
}
printf("%lld\n%lld\n",ansx,ansy);
return ;
}
bzoj4198
【bzoj4198】【Noi2015】荷马史诗的更多相关文章
- [UOJ#130][BZOJ4198][Noi2015]荷马史诗
[UOJ#130][BZOJ4198][Noi2015]荷马史诗 试题描述 追逐影子的人,自己就是影子. ——荷马 Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静 ...
- [BZOJ4198][Noi2015]荷马史诗
4198: [Noi2015]荷马史诗 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 700 Solved: 365[Submit][Status] ...
- [BZOJ4198] [Noi2015] 荷马史诗 (贪心)
Description 追逐影子的人,自己就是影子. ——荷马 Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的<荷马史诗>.但是 ...
- BZOJ4198: [Noi2015]荷马史诗(哈夫曼树)
Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1824 Solved: 983[Submit][Status][Discuss] Descripti ...
- 【BZOJ4198】[Noi2015]荷马史诗 贪心+堆
[BZOJ4198][Noi2015]荷马史诗 Description 追逐影子的人,自己就是影子. ——荷马 Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅 ...
- BZOJ_4198_[Noi2015]荷马史诗_huffman实现
BZOJ_4198_[Noi2015]荷马史诗_huffman实现 题意: Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的<荷马史诗> ...
- 洛谷 P2168 [NOI2015]荷马史诗 解题报告
P2168 [NOI2015]荷马史诗 题目描述 追逐影子的人,自己就是影子 --荷马 Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的<荷 ...
- BZOJ4198 & 洛谷2168 & UOJ130:[NOI2015]荷马史诗——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=4198 https://www.luogu.org/problemnew/show/P2168 ht ...
- bzoj 4198: [Noi2015]荷马史诗
Description 追逐影子的人,自己就是影子. --荷马 Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的<荷马史诗>.但是由& ...
- [Noi2015]荷马史诗
来自FallDream的博客,未经允许,请勿转载,谢谢. 追逐影子的人,自己就是影子. ——荷马 Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的 ...
随机推荐
- 使用idea写ssm的时候提示源文件夹中的文件找不到
<context:property-placeholder location="classpath:db.properties"/>这一行idea提示找不到db.pro ...
- 人脸辨识,用树莓派Raspberry Pi实现舵机云台追踪脸孔
影像辨识作为近年最热门的专业技术之一,广泛用于智慧监视器.车电监控.智慧工厂.生物医疗电子等等:其中,人脸辨识是一个很重要的部分,网络上已经有相当多的资源可供下载使用:于是我们使用舵机云台作为镜头旋转 ...
- 【MySQL 数据库】MySQL目录
目录 [第一章]MySQL数据概述 [第二章]MySQL数据库基于Centos7.3-部署 [MySQL解惑笔记]Centos7下卸载彻底MySQL数据库 [MySQL解惑笔记]忘记MySQL数据库密 ...
- while read读取文本内容
读取文件给 while 循环 方式一: exec <FILE while read line do cmd done 方式二: cat FILE_PATH |while read line do ...
- 从零开始的Python学习Episode 10——函数
函数 一.函数的创建 简单格式 def function_name(参数表): 函数体 return 如果没有写return,函数会默认返回一个none 二.函数的参数 必需参数: 调用函数时必需参数 ...
- World Cup(思维+模拟)
Description Allen wants to enter a fan zone(球迷区) that occupies a round square and has nn entrances. ...
- Scrum立会报告+燃尽图(十一月二十五日总第三十三次):展示博客
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2413 项目地址:https://git.coding.net/zhang ...
- 福大软工·第十一次作业-Alpha事后诸葛亮
福大软工·第十一次作业-Alpha事后诸葛亮 组长博客链接 本次作业博客链接 项目Postmortem 模板 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描 ...
- android入门 — Service
Service完全在后台运行,没有用户界面.使用的时候先创建Service子类,然后在AndroidManifest.xml中进行注册,同时可以通过<intent-filter.../>进 ...
- 一次WebSphere性能问题诊断过程
一次接到用户电话,说某个应用在并发量稍大的情况下就会出现响应时间陡然增大,同时管理控制台的响应时间也很慢,几乎无法进行正常工作. 赶到现场后,查看平台版本为Webshpere6.0.2.29,操作系统 ...