题解 | 走方格的方案数
from re import L import sys for line in sys.stdin: a = line.split() h = int(a[0])+1 l = int(a[1])+1 # print(h) # print(l) # 经典DP问题 # 这种方式会导致所有子列表共享同一个内存地址 # dp =[[0]*(h+1)]*(l+1) # 老实用dp = [[0] * (h + 1) for _ in range(l + 1)] # 注意行列数目初始化 dp = [[0] * (l) for _ in range(h)] for i in range(h): for j in range(l): # 边界初始条件 if i == 0 or j == 0: dp[i][j] = 1 #当前的状态为 右和上的状态之和 else: dp[i][j]=dp[i-1][j]+dp[i][j-1] #输出最后的结点 print(dp[h-1][l-1])