题目名称 408. [NOI 2009]二叉查找树
输入输出 treapmod.in/out
难度等级 ★★★☆
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 Gravatar.Xmz 于2010-03-11加入
开放分组 全部用户
提交状态
分类标签
NOI 动态规划 离散化 区间DP
分享题解
通过:39, 提交:69, 通过率:56.52%
Gravatar瑆の時間~無盡輪迴·林蔭 100 0.009 s 3.05 MiB C++
GravatarSamle 100 0.041 s 1.65 MiB C++
GravatarYoungsc 100 0.047 s 0.91 MiB C++
GravatarFoolMike 100 0.059 s 2.24 MiB C++
GravatarOwaski 100 0.070 s 2.22 MiB C++
GravatarHzfengsy 100 0.106 s 3.69 MiB C++
Gravatar再见 100 0.108 s 3.26 MiB C++
Gravatar梦恋D 100 0.108 s 5.37 MiB C++
GravatarLink 100 0.123 s 3.17 MiB C++
Gravatarthomount 100 0.126 s 4.11 MiB C++
本题关联比赛
2022级DP专题练习赛1
关于 二叉查找树 的近10条评论(全部评论)
坑点:1. 权值离散化 2.数据值排序 3. 注意开long long
GravatarImone NOI2018Au
2017-06-09 20:26 6楼
膜拜sherc神犇的题解!
GravatarFoolMike
2017-05-17 11:00 5楼
四楼
GravatarZwoi_只会打表抄代码的蒟蒻
2016-08-17 10:03 4楼
sanlou
GravatarZWOI_专业维修评测机
2016-08-17 10:01 3楼
二楼
Gravatarmaxinyang
2016-08-16 14:58 2楼
沙发
Gravatarhummertime
2016-08-16 14:57 1楼

408. [NOI 2009]二叉查找树

★★★☆   输入文件:treapmod.in   输出文件:treapmod.out   简单对比
时间限制:1 s   内存限制:128 MiB

【题目描述】

已知一棵特殊的二叉查找树。根据定义,该二叉查找树中每个结点的数据值都比它左儿子结点的数据值大,而比它右儿子结点的数据值小。

另一方面,这棵查找树中每个结点都有一个权值,每个结点的权值都比它的儿子结点的权值要小。

已知树中所有结点的数据值各不相同;所有结点的权值也各不相同。这时可得出这样一个有趣的结论:如果能够确定树中每个结点的数据值和权值,那么树的形态便可以唯一确定。因为这样的一棵树可以看成是按照权值从小到大顺序插入结点所得到的、按照数据值排序的二叉查找树。

一个结点在树中的深度定义为它到树根的距离加 $1$。因此树的根结点的深度为 $1$。

每个结点除了数据值和权值以外,还有一个访问频度。我们定义一个结点在树中的访问代价为它的访问频度乘以它在树中的深度。整棵树的访问代价定义为所有结点在树中的访问代价之和。

现在给定每个结点的数据值、权值和访问频度,你可以根据需要修改某些结点的权值,但每次修改你会付出 $K$ 的额外修改代价。你可以把结点的权值改为任何实数,但是修改后所有结点的权值必须仍保持互不相同。现在你要解决的问题是,整棵树的访问代价与额外修改代价的和最小是多少?

【输入格式】

输入文件中的第一行为两个正整数 $N,K$。其中 $N$ 表示结点的个数,$K$ 表示每次修改所需的额外修改代价。

接下来的一行为 $N$ 个非负整数,表示每个结点的数据值。

再接下来的一行为 $N$ 个非负整数,表示每个结点的权值。

再接下来的一行为 $N$ 个非负整数,表示每个结点的访问频度。

其中:所有的数据值、权值、访问频度均不超过 $4 \times 10^5$。

【输出格式】

输出文件中仅一行为一个数,即你所能得到的整棵树的访问代价与额外修改代价之和的最小值。

【样例1输入】

4 10
1 2 3 4
1 2 3 4
1 2 3 4

【样例1输出】

29

【样例1说明】


输入的原图是上图,它的访问代价是 $1 \times 1+2 \times 2+3 \times 3+4 \times 4=30$。

最佳的修改方案是把输入中的第 $3$ 个结点的权值改成 $0$,得到右图,访问代价是:$1 \times 2+2 \times 3+3 \times 1+4 \times 2=19$,加上额外修改代价 $10$,一共是 $29$。

【样例2输入输出】

点击下载样例2

【数据规模与约定】

对于 $40\%$ 的数据,满足 $N \leq 30$;

对于 $70\%$ 的数据,满足 $N \leq 50$;

对于 $100\%$ 的数据,满足:$1 \leq N \leq 70$,$1 \leq K \leq 3 \times 10^7$。

【来源】

NOI 2009