马拦过河卒
原题传送门
这一到题目也是比较基础的动态规划,也可以理解为是递推,主要是运用加法原理,思维难度不大。我们要求从 (0,0) ( 0 , 0 ) 到 (n,n) ( n , n ) 的方案总数,如果没有马的话,我们可以这么做:
设 f[i][j] f [ i ] [ j ] 为从 (0,0) ( 0 , 0 ) 走到 (i,j) ( i , j ) 的方案总数,我们知道一定是有上面和左边走来,所以只需要累加上面和左边的方案数即可。我们得出:
f[i][j]=f[i−1][j]+f[i][j−1](f[0][0...m]=f[0...n][0]=1) f [ i ] [ j ] = f [ i − 1 ] [ j ] + f [ i ] [ j − 1 ] ( f [ 0 ] [ 0... m ] = f [ 0... n ] [ 0 ] = 1 )
我们来思考一下马的问题:
1.当马拦住了 (0,0...m) ( 0 , 0... m ) 或 (0...n