3
#include <stdio.h> #include <string.h> #define _MOD 1000000007 int map[1001][1001]; //存储数据 int path(int M, int N) { if (map[M][N])//记忆化搜索 ,内存换时间 { return map[M][N]; } else if (M == 1 || N == 1) { map[M][N] = 1; return map[M][N]; } map[M][N] = (path(M - 1, N) + path(M, N - 1)) % _MOD; return map[M][N]; } int main(int argc, const char * argv[]) { int M, N, ans; while (~scanf("%d %d", &M, &N)) { memset(map, 0, sizeof(int) * 1001 * 1001); ans = path(M, N); printf("%d\n", ans); } return 0; }
