勇者和魔塔的算法题
题目描述:勇者和魔塔怪物都有三个属性:血量、攻击力、防御力。每层有一个怪物,击败怪物后可以选择一项属性奖励:血量增加1000,攻击力增加10,防御力增加10。
勇者与怪物战斗规则:每次战斗勇者先攻击,然后怪物攻击(如果怪物未死),轮流进行直到一方死亡。勇者每次对怪物造成的伤害为 max(1, 勇者攻击力 - 怪物防御力),怪物对勇者造成的伤害为 max(1, 怪物攻击力 - 勇者防御力)。
给定勇者的初始属性(血量h0, 攻击力a0, 防御力d0)和n个怪物的属性(血量h[i], 攻击力a[i], 防御力d[i]),以及击败每个怪物后可以选择一项属性奖励(三选一)。勇者必须按顺序挑战怪物(从第1个到第n个),并且每次战斗后立即选择奖励(即战斗后立即提升属性)。
问:最优策略下,勇者能击败最多能击败多少只怪物。