首先是这题一共只有两只手,而且按顺序跑n个点,也就是说,假如dp[i][j]代表着你左手在i,右手在j的时候的最优解,其实dp[i][j]=dp[j][i];所以说当最大的点为i时,你只需要关心另外一只手放在哪个点了就行了,也就是说dp[i+1][j]只和dp[i][*]有关系,和dp[i-1][*]只有间接关系。
首先除了dp[i][i-1]以外,dp[i][j]都是等于dp[i-1][j]的,为什么呢,因为从dp[i-1][j]到dp[i][j],我们不会换手,所以说我们不会省下任何步长,所以我们每跑一个点,只需要更新dp[i][i-1]即可。
#include
#include <string.h>
#include
#include
#include