CF313C Ilya and Matrix
题目描述
Ilya 是一只非常善良的狮子。他喜欢数学。在所有的数学对象中,他最喜欢的是矩阵。现在他遇到了一个需要解决的复杂矩阵问题。
他有一个大小为 $2^{n}×2^{n}$ 的方阵和 $4^{n}$ 个整数。你需要将所有这些数填入矩阵中(每个格子填一个数),使得按题目描述计算得出的矩阵美丽值最大。
一个 $2^{n}×2^{n}$ 大小的矩阵的美丽值按如下算法计算:
1. 找到矩阵中的最大元素,记为 $m$;
2. 如果 $n=0$,则该矩阵的美丽值为 $m$。否则,将矩阵划分为 $4$ 个互不相交的 $2^{n-1}×2^{n-1}$ 的子矩阵,此时矩阵的美丽值为 $m$ 加上这四个子矩阵各自的美丽值之和。
如你所见,这一算法是递归的。
请你帮助 Ilya 解决问题,并输出经过安排后可获得的最大矩阵美丽值。
输入格式
第一行包含一个整数 $4^{n}$($1 \leq 4^{n} \leq 2\cdot 10^{6}$)。
第二行包含 $4^{n}$ 个整数 $a_{i}$($1 \leq a_{i} \leq 10^{9}$)——需要填入 $2^{n}×2^{n}$ 矩阵的数字。
输出格式
输出一个整数,即可获得的最大矩阵美丽值。
请不要在 C++ 中使用 %lld 读取或输出 64 位整数。建议使用 cin、cout 或者 %I64d。
说明/提示
考虑第二个样例。你应该将数字这样排入矩阵:
`
1 2
3 4
` 那么矩阵的美丽值为:$4 + 1 + 2 + 3 + 4 = 14$。 由 ChatGPT 5 翻译
1 2
3 4
` 那么矩阵的美丽值为:$4 + 1 + 2 + 3 + 4 = 14$。 由 ChatGPT 5 翻译