SRM 208 DIV1 的level 3,题意是给一个张网,每个给子里有一定量的苹果,求然后有三个人从左上角走到右下角,每个人走过一个格子的时候就会把当前格子里的苹果都带走,问三个人能拿到的最多的苹果是多少。
很显然的一个解法dp,dp[step][i][j][k],意义是走完step步,第一个人在(i,step-i),第二个人在(j,step-j),第三人在(k,step-k)的时候能拿到的最多苹果是多少。
这题还有另一种解法,是要观察出一个性质,就是三条路径除了第一行和最后一行,路径不会相交,就是说可以理解成从第一行连到最后一行的三条路,路径不相交,相交肯定不是最优的,这个比较容易证明。然后是dp的时候怎么能体现出这个三条路径不相交的性质来。dp[row][i][j][k]为第row行,当前三条路径终点在(row,i),(row,j),(row,k)三个点时能拿到的最多苹果 ...