题目名称 4012. [NOI 2023]合并书本
输入输出 book.in/out
难度等级 ★★★★
时间限制 1500 ms (1.5 s)
内存限制 512 MiB
测试数据 20
题目来源 Gravatarsyzhaoss 于2024-09-01加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:0, 提交:0, 通过率:0%
关于 合并书本 的近10条评论(全部评论)

4012. [NOI 2023]合并书本

★★★★   输入文件:book.in   输出文件:book.out   简单对比
时间限制:1.5 s   内存限制:512 MiB

【题目描述】

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

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

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

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

【输入格式】

本题有多组测试数据。

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

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

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

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

【输出格式】

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

【样例1输入】

1
4
1 1 1 1

【样例1输出】

6

【样例2~4】

样例解释

【样例1说明】

如果小 C 将 $4$ 本书两两合并再将得到的两摞合并成一摞,那么前两次需要消耗的体力值各为 $1$。第三次将一摞重量为 $2$ 的书放到另一摞上面,两摞书磨损值各为 $1$,需要消耗的体力为 $2 + 1 + 1 = 4$。

因此如果选择这个方案,小 C 耗费的体力只有 $1 + 1 + 4 = 6$。

可以证明,在上述例子中,$6$ 为最小的体力耗费值。

【数据规模与约定】

对于所有测试数据保证:$1 \le t \le 10$,$1 \le n \le 100$,$1 \le w_i \le 10 ^ 9$。

特殊性质:保证 $w_i = 1$。

【来源】

NOI2023 Day2 Task3