jozj4010-我才不是萝莉控呢【哈夫曼树】
正题
题目大意
从(n,1)(n,1)(n,1)到(1,1)(1,1)(1,1),一个数组AAA,满足Ai≥Ai+1A_i\geq A_i+1Ai≥Ai+1
每次有两个选择走到(x−1,y+1)(x-1,y+1)(x−1,y+1),或(x,⌊y/2⌋)(x,\lfloor y/2\rfloor)(x,⌊y/2⌋)。后者需要消耗∑i=xnAi\sum_{i=x}^nA_i∑i=xnAi的代价
求最小代价
解题思路
先预处理好Bx=∑i=xnAiB_x=\sum_{i=x}^nA_iBx=∑i=xnAi
很容易推出动态转移方程
fi,j=min{fi−1,j+1,fi,j∗2+Bi}f_{i,j}=min\{f_{i-1,j+1},f_{i,j*2}+B_i\}fi,j=min{fi−1,j+1,fi,j∗2+Bi}
然后我们发现首先AiA_iAi是有序的,而BiB_iBi的性质
设fi,jf_{i,j}fi,j表示放入了前iii个叶子节点,有jjj个空位的哈夫曼树权值。
然后每次可以加入一个叶子节点在该层,且以后合并代价增加AiA_iAi
也可以将两个合并到新一层,空位多一些。
然后就愉快的发现这个的动态转移和之前的一样,其实就是哈夫曼树。
然后每次肯定是优先选择权值最小的合并,就是合并果子原题。
codecodecode
#include<cstdio>
#define ll long long
using namespace std;
ll a[100010],num,x,n;
long long s,u;
void up(ll x)
{ll t;while (x>1 && a[x]<a[x/2]){t=a[x];a[x]=a[x/2];a[x/2]=t;x/=2;}
}
void down(ll x)
{ll t,y;while (x*2<=num && a[x]>a[x*2] || x*2+1<=num && a[x]>a[x*2+1]){y=x*2;if (x*2+1<=num && a[x*2]>a[x*2+1]) y++;t=a[x];a[x]=a[y];a[y]=t;x=y;}
}
void insert(ll x)
{a[++num]=x;up(num);}
int main()
{int t;scanf("%lld",&t);while(t--){s=0;scanf("%lld",&n);num=0;for (ll i=1;i<=n;i++){scanf("%lld",&x);insert(x);} while (num>1){u=a[1];a[1]=a[num];num--;down(1);u+=a[1];a[1]=a[num];num--;down(1);s+=u;num++;a[num]=u;up(num);}printf("%lld\n",s);}
}
jozj4010-我才不是萝莉控呢【哈夫曼树】相关推荐
- [jzoj4210] 【五校联考1day1】我才不是萝莉控呢 {哈夫曼树}
题目 Description 小Y:"小R 你是萝莉控吗."小R:"-" 为了避免这个尴尬的话题,小R 决定给小Y 做一道题. 有一个长度为n 的正整数数组A, ...
- jzoj4210. 【五校联考1day1】我才不是萝莉控呢(哈夫曼树)
题意 50分 转换 正解 后记 题意 有一个(小SB)人要从(n,1)走到(1,1),每次他有两种走法: ①(x−1,y+1)①(x-1,y+1)无损耗 ②⌊(x,(y+1)/2)⌋②⌊(x,(y+1 ...
- [哈夫曼树] Jzoj P4210 我才不是萝莉控呢
Description 小Y:"小R 你是萝莉控吗."小R:"..." 为了避免这个尴尬的话题,小R 决定给小Y 做一道题. 有一个长度为n 的正整数数组A,满 ...
- [哈夫曼树][堆]JZOJ 4210 我才不是萝莉控呢qaq
Description 小Y:"小R 你是萝莉控吗."小R:"..." 为了避免这个尴尬的话题,小R 决定给小Y 做一道题. 有一个长度为n 的正整数数组A,满 ...
- 【哈夫曼树】JZOJ_4210 我才不是萝莉控呢
题意 现在,有一个n∗nn * nn∗n的网格图,左下角坐标是(1,1)(1, 1)(1,1),右上角坐标是(n,n)(n, n)(n,n).有一个小SBSBSB正在坐标为(n,1)(n, 1)(n, ...
- Jzoj4210 我才不是萝莉控呢
小Y:"小R你是萝莉控吗."小R:"..." 为了避免这个尴尬的话题,小R决定给小Y做一道题. 有一个长度为n的正整数数组A,满足艾> =艾+ 1,现在 ...
- 【JZOJ】4210 我才不是萝莉控呢!
题目名我已经无力吐槽. Description A:你是萝莉控吗? B:.....我给你道题目吧! 有一个长度为nn的正整数数组AA,满足Ai>=Ai+1A_i >= A_{i+1},现在 ...
- JZOJ Day4 B组 T3【五校联考1day1】我才不是萝莉控呢
题目大意: 小YYY:"小RRR 你是萝莉控吗."小RRR:"-" 为了避免这个尴尬的话题,小RRR 决定给小YYY 做一道题. 有一个长度为nnn 的正整数数 ...
- jzoj4210. 我才不是萝莉控呢(B组——Day4)
jzoj4210. 我才不是萝莉控呢(B组--Day4) 题目 Description 小Y:"小R 你是萝莉控吗."小R:"-" 为了避免这个尴尬的话题,小R ...
最新文章
- 十亿级流量下,我与Redis时延小突刺的战斗史
- python手机版安卓-手机随时随地写Python,还可以开发安卓APP,太厉害了!
- 【Bit-Z新起点,坚守与突破】
- 用python读取文档_python读取word文档
- 02、如何进行网站性能优化或怎么加快页面的加载速度
- 机器学习分类_机器学习之简单分类模型
- ubuntu14+vmwear联网
- PAT甲级1058(进制转换的“/” ,“%”干货!)
- python中的字典和类的区别_Python中的 字典和字典数据类型
- 【Robot Framework】字符串判断,if语句多执行条件,多执行语句
- 一些iptables的具体应用
- 凸优化第五章对偶 5.2Lagrange对偶问题
- Mac好用的图片压缩软件——JPG Compress 2 for Mac
- 电容或电感的电压_纯电阻、纯电感和纯电容电路
- 知识蒸馏论文翻译(9)—— Multi-level Knowledge Distillation via Knowledge Alignment and Correlation
- Lisp-Stat翻译 —— 第十章 一些动态绘图实例
- 小白友好——C++基于EeayX简单开发的豪华版贪吃蛇[单人模式+双蛇对战+闯关模式(地图跳转)+排行榜+音乐]
- OPEX推出新一代货到人仓库自动化技术——Infinity ASRS
- 嗖嗖~您有一份上云计划待查收
- Canvas 图片平铺设置
热门文章
- 化妆definer是什么意思_化妆品上的r是什么意思
- 成绩排序 九度教程c语言,九度OJ 1089 数字反转
- java 反射 本类,关于Java反射中基本类型的class有关问题
- 凝思系统改时间_国产操作系统往事:四十年激变,终再起风云
- sae 本地环境 mysql数据库_SAE本地环境与真实环境的差别
- webpack实战之手写一个loader和plugin
- 数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型的概念
- [蓝桥杯2017决赛]数位和-模拟(水题)
- 埃氏筛法(素数筛选)
- 前缀和优化+计蒜客 泡咖啡