AT_joigsp2025_h.勇者ビ太郎 3 (Bitaro the Brave 3)
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
勇者比太郎准备挑战一项保卫村庄免受怪物侵袭的防卫战任务。防卫战的难度用一个大于等于 1 且不超过 L 的整数表示,这个值可以在挑战时进行选择。设难度为 ℓ(1≤ℓ≤L)时,出现的怪物的 HP 会是(以难度 1 为基准)ℓ 倍。
防卫战会持续 T 秒,有 N 只怪物会陆续出现。每只怪物都编号 1 到 N。称防卫战开始后第 t 秒(0≤t≤T)为时刻 t。第 i 只怪物(1≤i≤N)会在时刻 Si(0≤Si<T)出现,其强度为 Pi,其 HP 为难度 ℓ 下的 ℓ×Hi。
在防卫战期间,比太郎可以无限次地进行如下操作:
- 从当前已出现的怪物中选择一只,用 1 秒时间对其攻击一次,使其 HP 减 1。当怪物 HP 变成 0 时,该怪物被击倒,之后无法继续攻击。
当时刻 T 到达时,防卫战结束,接着计算防卫战的评价值。
- 用 hi 表示时刻 T 后第 i 只怪物(1≤i≤N)剩余的 HP,则评价值为 h1P1+h2P2+⋯+hNPN。
只有当评价值不超过任务给定的基准值 m 时,比太郎才能完成任务。
难度越大,能完成任务时获得的奖励也越丰厚,因此比太郎希望求出能够完成此任务的最大难度。但是任务基准值事先未知,因此比太郎准备针对 Q 个候选基准值 M1,M2,…,MQ,分别求任务允许的最大难度。
给定防卫战的信息以及所有基准值候选,编写程序判断每个基准值下能否完成任务,如果可以,输出能够完成任务的最大难度。
输入格式
输入的格式如下,通过标准输入读入。
N L T
S1 H1 P1
S2 H2 P2
⋮
SN HN PN
Q
M1
M2
⋮
MQ
输出格式
输出 Q 行。对于第 j 行(1≤j≤Q),若取 m=Mj 时,可以完成任务,则输出能完成任务的最大难度,否则输出 0。
输入输出样例
输入#1
2 2 10 0 9 2 8 5 1 3 0 20 40
输出#1
0 1 2
输入#2
3 1 100000000000 60000000000 30000000000 1 30000000000 45000000000 1 10000000000 10000000000 1 1 0
输出#2
0
输入#3
3 10000000 100000000 60000000 4 1 30000000 6 1 0 2 1 1 0
输出#3
7000000
输入#4
5 20 100 0 3 1 20 2 2 40 1 3 60 4 4 80 2 5 11 0 50 100 150 200 250 300 350 400 450 500
输出#4
6 8 10 12 13 15 16 18 19 20 20
输入#5
15 10000000 1000000000000 160278118759 43084 33592 442653603914 19490 23090 824219815410 50858 89563 502303340628 56629 45080 495062829942 87342 28821 234536700105 45384 34328 396080693809 78081 50812 734374391045 40873 92012 122606844331 25451 30426 204076581972 58431 13989 495156368673 54276 41670 812963939390 27614 50228 405067019838 96324 18477 464546304875 67562 45956 528559327980 41759 15546 10 216000000000000 1728000000000000 5832000000000000 13824000000000000 27000000000000000 46656000000000000 74088000000000000 110592000000000000 157464000000000000 216000000000000000
输出#5
995176 1135557 1431775 1824183 2359362 3059523 3942014 5106209 6594716 8448125
说明/提示
子任务
1.(5 分)N≤30,Q=1,M1=0,L=1。
2.(10 分)N≤30,Q=1,M1=0。
3.(14 分)N≤30,Q≤3。
4.(10 分)Q≤3。
5.(33 分)N≤30。
6.(7 分)N≤400。
7.(16 分)N≤1800。
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 个基准值 M1=0,无法在任何难度下完成任务,因此第 1 行输出
0。 - 对于第 2 个基准值 M2=20,最多可以在难度 1 下完成,因此第 2 行输出 1。
- 对于第 3 个基准值 M3=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≤N≤6000。
- 1≤L≤10000000。
- 1≤T≤1018。
- 0≤Si<T(1≤i≤N)。
- 1≤Hi(1≤i≤N)。
- 1≤Pi(1≤i≤N)。
- H1P1+H2P2+⋯+HNPN≤1011。
- 1≤Q≤1000000。
- 0≤Mj≤1018(1≤j≤Q)。
- M1<M2<⋯<MQ。
- 所有输入均为整数。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?