您位于位置 x,y 的网格中。行的尺寸是 dx,dy。一步,您可以在行或列中领先或落后一步。你有多少种方法可以走 M 步,这样你在任何时候都不会离开网格?
您可以多次访问同一个职位。
如果您对任何 x,y 或者 x,y <= 0 或 x,y > dx,dy,您将离开网格。
1 <= M <= 300
1 <= x,y <= dx,dy <= 100
输入:
M
xy
dx dy
输出:
没有方法
示例:
输入:
1
6 6
12 12
输出:
4
示例:
输入:
2
6 6
12 12
输出:
16
如果你在位置 6,6,那么你可以走到 (6,5),(6,7),(5,6),(7,6)。
我被困在如何使用帕斯卡三角形来解决它。这是正确的方法吗?我已经尝试过蛮力,但它太慢了。
C[i][j], Pascal Triangle
C[i][j] = C[i - 1][j - 1] + C[i - 1][j]
T[startpos][stp]
T[pos][stp] = T[pos + 1][stp - 1] + T[pos - 1][stp - 1]