AT_arc226_b [ARC226B] Bin-ary Packing

题目描述

共有 $N$ 个编号为 $1,2,\dots,N$ 的袋子。对于每个 $i=0,1,\dots,M-1$,有 $A_i$ 个重量为 $2^i$ 的包裹。包裹的总数为 $A_0+A_1+\dots+A_{M-1}$。 每个包裹必须放入且仅放入一个袋子。有些袋子可以为空。 对于每个袋子,袋中所有包裹的重量之和称为该袋子的**重量**。 请你求出所有袋子的重量中的最大值的最小可能值。 你需要解答 $T$ 组测试数据。

输入格式

输入通过标准输入给出,格式如下: > $T$ $\text{case}_1$ $\text{case}_2$ $\vdots$ $\text{case}_T$ 每组测试数据的输入格式如下: > $N$ $M$ $A_0$ $A_1$ $\ldots$ $A_{M-1}$

输出格式

输出 $T$ 行。 第 $i$ 行输出第 $i$ 组测试数据的最小可能的袋子最大重量。

说明/提示

### 样例解释 1 在第一个测试用例中,有$3,2,1$个分别重为$1,2,4$的包裹。 例如,如果将包裹放入袋子 $1,2$,其分配为 $(4,1,1),(2,2,1)$,那么两袋子的重量分别是 $6$ 和 $5$,最大值为 $6$。 无法使袋子的最大重量降至 $5$ 或以下。 ### 数据范围 - $1 \le T \le 10^5$ - $1 \le N \le 10^6$ - $1 \le M \le 40$ - $0 \le A_i \le 10^6$ - 所有测试用例中 $M$ 之和不超过 $2\times 10^5$。 - 所有输入均为整数。 由 ChatGPT 5 翻译