地砖排成一条直线,编号 1 到 n,人一开始在地宫外的 0 号位置。每一回合只能向前跳 1、2 或 3 块,落到哪块就拿走那块的财宝。必须在 m 回合内到达第 n 块,否则输出 −1。
用动态规划。设 dp[t][i] 表示恰好用 t 个回合走到第 i 块地砖时,能拿到的最大财宝。起点:dp[0][0]=0。
你在玩地宫探宝游戏,地宫中每块地砖上都有不同价值的财宝,每回合你有三种走法:
请在回合数耗尽前,携带最多的财宝逃离地宫。
设定:
n(地砖个数,取值[5,10000])m(回合数上限,取值[2,5000])
n个整数(空格分割,表示每块地砖上财宝价值,取值[0,5])
注意:所有的输入均为整数,用空格分割,题目保证输入合法,无需校验输入
输出:携带的财宝总价(要求找到财宝总价最大值),如无法逃离则返回 −1
输入
5 3
1 2 1 1 3
输出
6
说明
第一行:有5块地砖,要求3步逃离 第二行:5个整数,分别表示地砖上的财宝价值
最优走法: 第一步:第二块地砖,拾取价值为2的财宝 第二步:第三块或第四块,拾取价值为1的财宝 第三步:第五块地砖,拾取价值为3的财宝
财宝价值共计:6
输入
10 3
0 0 3 1 2 3 0 0 0 0
输出
-1
说明
回合数是3,最大移动距离是9,无法在回合数耗尽前逃离
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.