M * N的方格,一个机器人从左上走到右下,只能向右或向下走。有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10^9 + 7的结果。
Input
第1行,2个数M,N,中间用空格隔开。(2 <= m,n <= 1000)
Output
输出走法的数量。
Input示例
2 3
Output示例
3
题解:似乎是找规律的:
1 | 1 | 1 | 1 |
1 | 2 | 3 | 4 |
1 | 3 | 6 | 10 |
1 | 4 | 10 | 20 |
#include<bits/stdc++.h>
#define ll long long int
#define MOD 1000000007
using namespace std;
ll a[1000][1000];
int main()
{
for(int i=0;i<1000;i++)
a[0][i]=1;
for(int i=0;i<1000;i++)
a[i][0]=1;
for(int i=1;i<1000;i++)
{
for(int j=1;j<1000;j++)
{
a[i][j]=(a[i-1][j]+a[i][j-1])%MOD;
}
}
ll m,n;
scanf("%lld%lld",&m,&n);
printf("%lld",a[m-1][n-1]);
return 0;
}