与传纸条方法相同!
用f[i][j][k][l]表示第一个人走到(i,j),第二个人走到(k,l)的最优解
我们考虑两个人同时走,就相当于数字三角形。
状态转移方程为:
f[i][j][k][l]=max(f[i-1][j][k-1][l],f[i-1][j][k][l-1],f[i][j-1][k-1][l],f[i][j-1][k][l-1])+a[i][j]+a[k][l];f[i][j][k][l]=max(f[i−1][j][k−1][l],f[i−1][j][k][l−1],f[i][j−1][k−1][l],f[i][j−1][k][l−1])+a[i][j]+a[k][l];
因为只能取一次,所以当两个人相遇时,只加一次数,否则加两次数(0没有影响)
两人相遇:i==k&&j==l
代码: