题目描述
一支攻城部队, 有若干种大炮各座, 以及数量有限的火药,每种大炮的威力不尽相同,且在每次开火之前都需要一定时间填充火药, 请你帮助指挥官在给定的时间结束之前或者火药存量耗尽之前给予城池最大的打击。
- 大炮每次开火的威力一样;
- 火药剩余量不小于大炮的消耗量,该大炮才能开火;
- 填充火药之外的时间忽略不计;
- 不同种大炮可以同时开火。
输入描述
第一行,整数 N ,M ,T , N 表示大炮种类个数, M 表示火药数量, T 表示攻城时间,1 <= N,M,T<=1000。
接下来N 行,每一行三个整数A , B , C 。分别表示大炮的威力,大炮每次攻击消耗的火药量,大炮每次攻击填充火药的时间,0<=A,B,C <=100000。
输出描述
输出在给定的时间结束之前或者火药存量耗尽之前给予城池最大的打击。
样例一:
输入
3 100 20
10 8
这是一篇关于华为在线开发者(OD)测试中的一道算法题——大炮攻城的解题解析。题目要求在限定时间内或火药用完前,利用不同大炮最大化对城池的破坏。这是一个背包问题,通过初始化dp数组,根据火药量和大炮特性,动态规划求解最大攻击力。
订阅专栏 解锁全文
31万+

被折叠的 条评论
为什么被折叠?



