题库练习 「NOI2023」合并书本
← 上一题 下一题 →

A6732 | 「NOI2023」合并书本

来源NOI
时间限制1500ms
内存限制512MB
通过 / 提交0/0

题目描述

小 C 有 $n$ 本书,每本书都有一个重量,他决定把它们合并成一摞。

每一次合并小 C 可以把一摞书放到另一摞书上面,使得它们合并到一摞。如果小 C 把第 $i$ 摞书放到第 $j$ 摞书上面,小 C 需要消耗的体力为**第 $i$ 摞书的重量**加上**两摞书的磨损值之和**。

初始时每本书自成一摞且磨损值均为 $0$。每当小 C 将两摞书合并后,形成的新的一摞书的磨损值为合并前的两摞书的磨损值的**较大值的两倍再加一**,重量为合并前的两摞书的**重量之和**。

你的任务是设计出合并的次序方案,使小 C 耗费的体力最少,并输出这个最小的体力耗费值。

输入格式

从文件 book.in 中读入数据。

**本题有多组测试数据。**

输入的第一行包含一个正整数 $t$,表示数据组数。

接下来依次输入每组测试数据,对于每组测试数据:

输入的第一行包含一个正整数 $n$,表示有 $n$ 本书。

输入的第二行包含 $n$ 歌正整数,第 $i$ 个数 $w_i$ 表示第 $i$ 本书的重量。

输出格式

输出到文件 book.out 中。

对于每组测试数据输出一行一个整数,表示将 $n$ 本书合并成一摞需要消耗的最少体力。

输入输出样例

输入 #1
1
4
1 1 1 1
输出 #1
6
C++ 编辑器
输入
输出