作业帮 > 综合 > 作业

一个梦中的问题,分值很大,

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/16 18:06:06
一个梦中的问题,分值很大,
完整的题目是这样的,用一个魔法棒打一个小朋友,一开始每击打一次能得1分,已知每打一下都能积攒1个能量球,如果某一时刻将积攒的能量球消耗掉并注入到魔法棒内,每注入一个能量球,每击打一次的得分就会多1分.举例说,一开始我击打了100下,能得100分,此时能量球已经积攒了100个,我全部注入到魔法棒中后,每击打一次就能得到101分,此时能量球为0.已知每击打一次魔法棒消耗时间1秒,每充能一次需要消耗时间5秒,充能的5秒内不能击打,一次充能5秒时间内可以充能任意多积攒的能量球.请问,如果需要得到50000分,那么,最短的时间为多少?如何证明自己的答案是最短时间?
373秒无误.楼上也真的是高手呢^-^.到时候把你的方法打上来一起讨论讨论好不好~
我是编程的做法:这是一个用动态规划解答的问题.
设函数F(t,n)为在时间t内,经过n次充能所能得到的最大击打次数的值
F(t,n)=max{F(i,n-1)+[i-5(n-1)-1](t-i-5)} 其中1
再问: 经过和你的讨论,最后的答案确定在372秒,追问一次作为终结答案。这个问题就算完成了,后面真要是有人提出异议可以和我联系。
再答: 是372秒。我动态过程写错了一点点 中间的动态规划函数应该是:(F[i][n-1]+(i-5*(n-1))*(t-i-5)) 没有那个 -1!! 我在检查回调函数的时候发现的检验错误的。58 120 183 246 309 是这5次充能的时机,即是从59-63 121-125 184-188 247-251 310-314是充能的秒数,可以得到的是50228分。由动态规划过程可知一定是最优解。