一个简单的dp
我们可以分类:
- 当
a[i]与a[i - 1]都知道的时候,直接累加计算即可。 - 当
a[i]已知,a[i - 1]未知时:dp[i][j]=max(dp[i][j],dp[i-1][k]+ms[k][j]); - 当
a[i]未知,a[i - 1]已知时:dp[i][j]=max(dp[i][j],dp[i-1][a[i-1]]+ms[a[i-1]][j]); - 当
a[i]和a[i - 1]都未知时 :那么dp[i][a[i]]=max(dp[i][a[i],dp[i-1][k]+ms[k][a[i]]);
代码按照以上思路写即可