某城市的街道呈网格状,左下角坐标为 A(0, 0),右上角坐标为 B(n, m),其中 n \ge m。现在从 A(0, 0) 点出发,只能沿着街道向正右方或者正上方行走,且不能经过图示中直线左上方的点,即任何途径的点 (x, y) 都要满足 x\ge y,请问在这些前提下,到达 B(n, m) 有多少种走法。
很容易就可以想到答案是C(n+m,m)-C(n+m,m-1) 当然,你打C++高精也可以。。。 python更省力啊。。。
n,m=map(int,input().split())//读入一行内两个整数
a=[1]//定义list
for i in range(1,m+n+1,1): a.append(int(a[i-1]*int(i)))//预处理阶乘
print(a[n+m]//(a[n]*a[m])-a[n+m]//(a[n+1]*a[m-1]))//求组合数
# (C(m+n,m)-C(m+n,m-1))