一种区间 DP

这里是题

可以想到区间 DP。

原因

如果不是从一个区间内往外 jumping,一定要走回头路,不优,所以是区间 DP。

然而,我们以前写的区间 DP 设计对这题并不适用,无法既高效又简单的转移。

然而,我们可以在以往的 \(dp[i][j]\) 后再加一维,变成 \(dp[i][j][1/2]\)

其中,\(dp[i][j][1]\) 表示把 \(i\sim j\) 都 jumping 一遍后停在 \(i\) 的最短路,而 \(dp[i][j][2]\) 表示把 \(i\sim j\) 都 jumping 一遍后停在 \(j\) 的最短路。

具体转移很好想,是

1
2
dp[i][j][1]=min(dp[i+1][j][1]+dis(i,i+1),dp[i+1][j][2]+dis(i,j));
dp[i][j][2]=min(dp[i][j-1][1]+dis(i,j),dp[i][j-1][2]+dis(j,j-1));

dis(i,j) 代表 \(i\) 荷叶直接 jumping 到 \(j\) 荷叶的距离。