这题个人感觉用动态规划更加简单。状态设计:f[i][j]表示a[i][j]的方法数。初始状态:f[1][1] = 1(a[1][1] 表示 初始的1种方案)。状态转移:f[i][j]可以从f[i-1][j] 和 f[i][j-1]转移而来,根据题意,这两种状态取最大值。输出:因为没有固定的终点,使用数组ans表示最终的答案,ans和f[i][j]取最大值。
以样例为例(后项数字为方案数)
.1 .2(max(f[1][1],f[0][2])+1 .max(f[1][2],f[0][3])+1 . 2 #0 #0 #0 .0 .0
以上思路数组请开[105][105],不然会越界
上代码!
感觉就是一道基本的线性dp,好像没必要用BFS(练习的请无视)
求个点赞,谢谢了