AT_pakencamp_2024_day2_d Double Mochi
题目描述
在パケン国,有在新年伊始竖直堆放年糕作为吉祥物“ダブル餅”的习俗。这种“ダブル餅”具有以下性质:
- 假设自上而下堆叠的年糕重量依次为 $V_1, V_2, \dots, V_n$(一共有 $n$ 个年糕),那么对于所有的 $i$($1 \leq i \leq n-1$),都有 $2 \times V_i \leq V_{i+1}$ 成立。
パケン国的居民パケ子拥有编号从 $1$ 到 $N$ 的 $N$ 个年糕。第 $i$ 个年糕($1 \leq i \leq N$)的重量是 $W_i$。对于所有 $i$($1 \leq i \leq N-1$),都有 $W_i \leq W_{i+1}$。パケ子会向你提出 $Q$ 个询问。第 $i$ 个询问内容为:“如果选用编号从 $L_i$ 到 $R_i$ 的所有年糕,每种各用一次,制作若干个ダブル餅,最少需要制作多少个ダブル餅?”
请分别回答每个询问的最小个数。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $Q$ $W_1$ $W_2$ $\ldots$ $W_N$ $L_1$ $R_1$ $L_2$ $R_2$ $\vdots$ $L_Q$ $R_Q$
输出格式
输出 $Q$ 行,第 $i$ 行输出第 $i$ 个询问的答案。
说明/提示
## 子任务
1. (1 分)$N \leq 6$,$Q = 1$
2. (4 分)$N \leq 16$,$Q = 1$
3. (10 分)$N \leq 2000$,$Q = 1$
4. (10 分)$Q = 1$
5. (75 分)无额外限制
## 样例解释 1
第 $1$ 个询问,对应使用的年糕重量分别为 $3, 4, 6, 8, 16$。
- 用重量为 $3$ 和 $6$ 的年糕组成一个ダブル餅;
- 用重量为 $4, 8, 16$ 的年糕组成一个ダブル餅。
这样一共可以用 $2$ 个ダブル餅完成,且为最少。
第 $2$ 个询问,只用重量为 $3$ 的年糕。这种情况下必须制作 $1$ 个ダブル餅。
注意即使只有一个年糕,它本身也可以作为一个合法的ダブル餅。
第 $3$ 个询问,使用的年糕重量分别为 $2, 3, 3, 4, 6, 8, 16$。
- 用重量为 $3$ 和 $6$ 的年糕组成一个ダブル餅;
- 用重量为 $2, 4, 8, 16$ 的年糕组成一个ダブル餅;
- 剩下的一个 $3$ 单独作为一个ダブル餅。
这样一共可以用 $3$ 个ダブル餅完成,且为最少。
本样例满足子任务 $5$ 的约束条件。
# 数据范围
- $1 \leq N \leq 2 \times 10^5$
- $1 \leq Q \leq 2 \times 10^5$
- $1 \leq W_i \leq 10^9$($1 \leq i \leq N$)
- $1 \leq L_i \leq R_i \leq N$($1 \leq i \leq Q$)
- $W_i \leq W_{i+1}$($1 \leq i \leq N-1$)
- 输入均为整数。
由 ChatGPT 5 翻译