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 翻译