AT_joigsp2025_h 勇者ビ太郎 3 (Bitaro the Brave 3)
题目描述
勇者比太郎准备挑战一项保卫村庄免受怪物侵袭的防卫战任务。防卫战的难度用一个大于等于 $1$ 且不超过 $L$ 的整数表示,这个值可以在挑战时进行选择。设难度为 $\ell$($1 \leq \ell \leq L$)时,出现的怪物的 HP 会是(以难度 $1$ 为基准)$\ell$ 倍。
防卫战会持续 $T$ 秒,有 $N$ 只怪物会陆续出现。每只怪物都编号 $1$ 到 $N$。称防卫战开始后第 $t$ 秒($0 \leq t \leq T$)为时刻 $t$。第 $i$ 只怪物($1 \leq i \leq N$)会在时刻 $S_i$($0 \leq S_i < T$)出现,其强度为 $P_i$,其 HP 为难度 $\ell$ 下的 $\ell \times H_i$。
在防卫战期间,比太郎可以无限次地进行如下操作:
- 从当前已出现的怪物中选择一只,用 $1$ 秒时间对其攻击一次,使其 HP 减 $1$。当怪物 HP 变成 $0$ 时,该怪物被击倒,之后无法继续攻击。
当时刻 $T$ 到达时,防卫战结束,接着计算防卫战的**评价值**。
- 用 $h_i$ 表示时刻 $T$ 后第 $i$ 只怪物($1 \leq i \leq N$)剩余的 HP,则评价值为 $h_1 P_1 + h_2 P_2 + \dots + h_N P_N$。
只有当评价值不超过任务给定的基准值 $m$ 时,比太郎才能完成任务。
难度越大,能完成任务时获得的奖励也越丰厚,因此比太郎希望求出能够完成此任务的最大难度。但是任务基准值事先未知,因此比太郎准备针对 $Q$ 个候选基准值 $M_1, M_2, \dots, M_Q$,分别求任务允许的最大难度。
给定防卫战的信息以及所有基准值候选,编写程序判断每个基准值下能否完成任务,如果可以,输出能够完成任务的最大难度。
输入格式
输入的格式如下,通过标准输入读入。
> $N$ $L$ $T$
> $S_1$ $H_1$ $P_1$
> $S_2$ $H_2$ $P_2$
> $\vdots$
> $S_N$ $H_N$ $P_N$
> $Q$
> $M_1$
> $M_2$
> $\vdots$
> $M_Q$
输出格式
输出 $Q$ 行。对于第 $j$ 行($1 \leq j \leq Q$),若取 $m = M_j$ 时,可以完成任务,则输出能完成任务的最大难度,否则输出 `0`。
说明/提示
### 子任务
1.($5$ 分)$N \leq 30$,$Q = 1$,$M_1 = 0$,$L = 1$。
2.($10$ 分)$N \leq 30$,$Q = 1$,$M_1 = 0$。
3.($14$ 分)$N \leq 30$,$Q \leq 3$。
4.($10$ 分)$Q \leq 3$。
5.($33$ 分)$N \leq 30$。
6.($7$ 分)$N \leq 400$。
7.($16$ 分)$N \leq 1\,800$。
8.($5$ 分)无额外限制。
---
### 样例说明 1
当难度为 $1$ 时,可以按以下方式操作,使评价值为 $4$,无法达成 $3$ 或以下:
时刻 事件
0 怪物1(HP9)出现。
0-8 攻击怪物1,总共8次;其HP由9降到1。
8 怪物2(HP5)出现。
8-9 攻击怪物2 1次,其HP由5降到4。
9-10 攻击怪物1 1次,其HP由1降为0。
10 怪物1被击倒。
10 防卫战结束。评价值为$0 \times P_1 + 4 \times P_2 = 4$。
当难度为 $2$ 时,可以按以下方式使评价值为 $26$,无法达成 $25$ 或以下:
时刻 事件
0 怪物1(HP18)出现。
0-8 攻击怪物1,总共8次;其HP由18降到10。
8 怪物2(HP10)出现。
8-10 攻击怪物1 2次,其HP由10降到8。
10 防卫战结束。评价值为$8 \times P_1 + 10 \times P_2 = 26$。
并且由 $L = 2$,故不能选择难度 $3$ 或以上。所以输出如下:
- 对于第 $1$ 个基准值 $M_1 = 0$,无法在任何难度下完成任务,因此第 $1$ 行输出 `0`。
- 对于第 $2$ 个基准值 $M_2 = 20$,最多可以在难度 $1$ 下完成,因此第 $2$ 行输出 $1$。
- 对于第 $3$ 个基准值 $M_3 = 40$,最多可以在难度 $2$ 下完成,因此第 $3$ 行输出 $2$。
该输入示例满足子任务 $3, 4, 5, 6, 7, 8$ 的约束。
---
### 样例说明 2
该输入样例满足所有子任务的约束。
---
### 样例说明 3
该输入样例满足子任务 $2, 3, 4, 5, 6, 7, 8$ 的约束。
---
### 样例说明 4
该输入样例满足子任务 $5, 6, 7, 8$ 的约束。
---
### 样例说明 5
该输入样例满足子任务 $5, 6, 7, 8$ 的约束。
### 数据范围
- $1 \leq N \leq 6\,000$。
- $1 \leq L \leq 10\,000\,000$。
- $1 \leq T \leq 10^{18}$。
- $0 \leq S_i < T$($1 \leq i \leq N$)。
- $1 \leq H_i$($1 \leq i \leq N$)。
- $1 \leq P_i$($1 \leq i \leq N$)。
- $H_1 P_1 + H_2 P_2 + \cdots + H_N P_N \leq 10^{11}$。
- $1 \leq Q \leq 1\,000\,000$。
- $0 \leq M_j \leq 10^{18}$($1 \leq j \leq Q$)。
- $M_1 < M_2 < \cdots < M_Q$。
- 所有输入均为整数。
由 ChatGPT 5 翻译