P1541 [NOIP 2010 提高组] 乌龟棋题解


这题的正解为dp
主体思路是:
建一个四维数组
dp[i][j][k][l]用来存用i张走一格的卡牌、用j张走二格的卡牌、用k张走三格的卡牌、用l张走一格的卡牌时最多可以得到几分。
然后四重循环,循环中建一个变量x,表示已经走了几步,注意起点的一步也要加上
之后如果i==0&&j==0&&k==0&&l==0,就把dp[i][j][k][l]赋值为分数数组的第一项,
否则
如果i>=1dp[i][j][k][l]就等于dp[i][j][k][l]和dp[i-1][j][k][l]+a[x]之间的最大值
如果j>=1dp[i][j][k][l]就等于dp[i][j][k][l]和dp[i][j-1][k][l]+a[x]之间的最大值

以此类推
最后输出dp的最后一项就好啦!
这样,一道水绿就过了。

核心代码
不给
1 个赞

禁止发AC代码,建议修改

蔡老师要求你立刻删除的

@连晨皓 你咋有提高组的题的?你不是普及组的吗

这是luogu的

ooo

?这不是提高组的吧 @路漫漫其修远兮_蒟蒻将上下而求索 这就是普及组的吧