jzoj4210. 【五校联考1day1】我才不是萝莉控呢(哈夫曼树)
- 题意
- 50分
- 转换
- 正解
- 后记
题意
有一个(小SB)人要从(n,1)走到(1,1),每次他有两种走法:
①(x−1,y+1)①(x-1,y+1)无损耗
②⌊(x,(y+1)/2)⌋②⌊(x,(y+1)/2)⌋代价为Σa[i](i=x...n)Σa[i](i=x...n)
50分
设F[i,j]表示该SB位置为(i,j),然后转移乱搞N2N^2。
转换
先引入一个概念。
哈夫曼树
给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。
1、路径和路径长度
在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1。
2、结点的权及带权路径长度
若将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权。结点的带权路径长度为:从根结点到该结点之间的路径长度与该结点的权的乘积。
3、树的带权路径长度
树的带权路径长度规定为所有叶子结点的带权路径长度之和为WPL。
如果要求一颗最小代价的哈夫曼树,应该怎么求?
设F[i,j]表示当前已经放了前i个节点(从小到大排序),剩余可放节点个数为j。
那么有两种转移:
①F[i+1,j−1]①F[i+1,j-1],表示在剩下可放的节点中选一个来放第(i+1)个,无代价。
②F[i,j∗2]+Σa[i+1 n]②F[i,j*2]+Σa[i+1~n],表示把剩下的j个叶子节点往下再扩展2个节点,原叶节点作废。
第二种不太好理解。
圆圈表示已放的节点,三角表示可以放且已作废的叶节点,方块表示二次扩展的叶节点。
如图,一个三角分成了两个方块,所以叶节点个数*2。
回到第一种情况,如果我删掉了灰色三角,即在灰色三角处放了一个数,可以发现后来不会重复计算放过的叶节点(灰方块)。
正解
观察上面的转换过程,可以发现其实就是题目给出的逆操作。
所以题目其实就是求序列为a的哈夫曼树的最小权值。
最小权值=min(每个节点深度(根节点是0)*该节点权值)
所以,为了保证总值最小,要用大数*小数。
每次就用最小的两个数合并,对答案的贡献就是两数之和。
堆维护搞定。
后记
其实这道题就是旧OJ的合并果子高级版。。。
jzoj4210. 【五校联考1day1】我才不是萝莉控呢(哈夫曼树)相关推荐
- [jzoj4210] 【五校联考1day1】我才不是萝莉控呢 {哈夫曼树}
题目 Description 小Y:"小R 你是萝莉控吗."小R:"-" 为了避免这个尴尬的话题,小R 决定给小Y 做一道题. 有一个长度为n 的正整数数组A, ...
- 【五校联考1day1】我才不是萝莉控呢
Description 小Y:"小R 你是萝莉控吗."小R:"-" 为了避免这个尴尬的话题,小R 决定给小Y 做一道题. 有一个长度为n 的正整数数组A,满足A ...
- JZOJ 4210. 【五校联考1day1】我才不是萝莉控呢
.. 题目: 分析: 代码: 题目: 传送门 分析: 我们直接放上合并果子的代码,然后怒切...... 好吧,其实是我找不到证明tatata是哈夫曼树的过程,但题解说是合并果子,所以就^ _ ^ 代码 ...
- JZOJ Day4 B组 T3【五校联考1day1】我才不是萝莉控呢
题目大意: 小YYY:"小RRR 你是萝莉控吗."小RRR:"-" 为了避免这个尴尬的话题,小RRR 决定给小YYY 做一道题. 有一个长度为nnn 的正整数数 ...
- jzoj(senior)4208. 【五校联考1day1】线段树什么的最讨厌了
题目链接 题解:反着搜,从[l,r]区间去拓展到其他四个区间[l,2r-l],l,2r-l+1,[2l-r-2,r]2l-r-1,r,然后dfs这四个区间就好啦! #include<cmath& ...
- 湖南长郡2021高考成绩查询时间,2021年湖南新高考六校、长郡十五校联考时间公布...
2021年湖南新高考六校.长郡十五校联考时间公布 导读:距离2021年高考时间仅剩不到一百天,各个省份都的高三学子都进入紧张阶段.开始了各种模拟考试.2021届湖南省炎德英才大联考的考试时间也已经公布 ...
- 4246. 【五校联考6day2】san (Standard IO)
4246. [五校联考6day2]san (Standard IO) Time Limits: 1000 ms Memory Limits: 262144 KB Detailed Limits D ...
- jzoj4230. 【五校联考4day1】淬炼神体(B组——Day3)
jzoj4230. [五校联考4day1]淬炼神体 题目 Description 王仙女将你提供的答案填在<葵花宝典>上,突然,宝典发出耀眼的白光,一股强大的吸力瞬间将仙女吸入宝典中. 一 ...
- 【五校联考2015 9.5】我才不是萝莉控
题目大意 你在一个n×nn\times n的网格图上,初始站在(1,1)(1, 1)点,要求到达(n,n)(n, n)点. 假如你现在在(x,y)(x, y)点,那么你有两种行走方式. 走到(x+1, ...
最新文章
- java中先序创建一棵树,恳求大佬指点!!!首先标明空子树的先根遍历序列建立一棵二叉树...
- mysql多重主键错误,老师,jd_spider中数据插入Mysql时一直显示主键错误,求助~
- 中文字体练习好看的手写字
- python图例位置_Python | 图例位置
- 201609-1-最大波动
- 我们用transformer干啥?
- DB2 9 根本(730 磨练)认证指南,第 3 部门: 谋面 DB2 数据(4)
- 晶振封装与频率对照表
- java排查full gc_一次full gc的排查经历
- 华为U2000网管研究实录 (1) - 安装
- 印第安纳大学计算机与信息学院,印第安纳大学伯明顿分校管理信息系统(MIS)专业详解...
- Openerp权限设置总结
- 工欲善其事,必先利其器-程序员工具推荐
- 《林超:给年轻人的跨学科通识课》导图 04:函数模型
- 华为S5700交换机配置 不同vlan 间通信---eNSP
- 介绍MSYS2 在windows下与使用
- FLUENT进行组分反应模拟
- Android移动应用开发之制作动画基础
- Solidworks快速装配——带配合装配与阵列装配(带例子解释)
- 分布式数据库发展历程SequoiaDB 简介