|
发表于 2014-6-12 17:14:43
|
显示全部楼层
不要意思,我新注册的,以下是我的解法:
首先要清楚解题核心是要保证在10分钟内达到伤害最大化
所以要使得释放大伤害值的技能的次数最多(即技能1)
假设10分钟内达成伤害最大值的技能释放次数按排列依次为a,b,c,d。就是10分内共释放技能1,a次;依次下去
则所求MAX=100a+50b+25c+75d
条件:
技能释放次数*技能CD<=空余时间
空余时间=总时间-动画播放时间
分析:
伤害值:技能1>技能4>技能2>技能3,所以从左开始考虑可释放技能的空余时间。
初始600s,考虑改时间内技能1可释放几次:
a=600/40 技能1释放a次所需时间不超过总时间,若所得a值取整,余数设为t1并与技能1释放时间10比较,若t1>=10,则技能1次数为a+1
d=(600-10a-t1)/30 技能4伤害值排第二,其空余时间为总时间-a次技能1释放时间,同上
b=(600-10a-5d-t2)/20
c=(600-10a-5d-5b-t3)/10
结果:技能1次数:a=15,
技能4次数为:d=15,
b=19且t3=5,所以技能2次数为:b+1=20
c=29且t4<10故技能3次数;为:c=29
若有不对请指出,反推也是按技能伤害值从大到小考虑。数学模型自己想,程序自编,本人程序小白,勿扰 |
|