[SCOI2006]zh_tree
张老师根据工作需要,设计了一种特殊的二叉搜索树,并将其命名为 zh_tree。
一棵具有 个结点的 zh_tree,其中序遍历恰好为 ,数字 分别为各结点的编号。这 个结点对应一组学术论文中出现的 个不同单词。
第 个单词在这组论文中出现的次数记为 。例如, 表示第 个结点所对应的单词在这组论文中出现了 次。设这组论文中出现的单词总数为 ,则
记
为第 个单词在这组论文中出现的概率,即出现频率。
张老师规定根结点的深度为 。如果第 个结点的深度为 ,则访问该结点的代价 为
其中 是已知的、不超过 的正实数。
zh_tree 是满足上述中序遍历要求,并使平均访问代价
达到最小的二叉树。
请根据给定数据,求出访问 zh_tree 的最小平均代价。
输入格式
第一行包含三个用空格分隔的数 。其中, 为正整数, 为正实数。
第二行包含 个用空格分隔的正整数 ,分别表示每个单词出现的次数。
输出格式
输出一行一个实数,保留 位小数,表示访问 zh_tree 的最小平均代价。
样例输入
4 2 3.5
20 30 50 20
样例输出
7.000
数据范围
- ,且 为正整数;
- ,且 为正实数;
- ,且 为正整数。
来源与许可
本题为 SCOI 2006 试题「zh_tree」,题面与测试数据整理自 BZOJ。
样例 1
输入
4 2 3.5
20 30 50 20
输出
7.000