我试图解决关于 SPOJ https://www.spoj.pl/problems/DIEHARD/的练习题。然而,我的贪婪方法都导致了错误的答案,并且递归对于最坏的情况来说太慢了。谁能告诉如何解决这个问题?我正在寻找可以为我指明正确方向的人。
游戏很简单。你最初有“H”的生命值和“A”的护甲。在任何时候,你都可以生活在三个地方——火、水和空气中的任何一个。在每单位时间之后,你必须改变你的居住地。例如,如果您目前生活在火灾中,您可以踏入水中或空气中。
- 如果你踏入空中,你的健康增加 3 点,你的护甲增加 2 点
- 如果你踏入水中,你的生命值减少 5,你的护甲减少 10
如果你踏入火中,你的生命值减少 20,你的护甲增加 5如果您的生命值或护甲变为 <=0,您将立即死亡
找到你可以生存的最长时间。
输入:
第一行包含一个整数 t,即测试用例的数量。对于每个测试用例,将有两个正整数表示初始健康 H 和初始护甲 A。
输出:
对于每个测试用例,找到您可以生存的最长时间。