0
已解决
题目名称:简单计数 (总提交:769 次通过数:28 次)
有一个n*n的网格,你初始在左下角(0,0)的位置,现在你每次可以向右走一步或者向上走一步,现在你想走到右上角(n,n)的位置,但是你不走到对角线上(即除了端点外不能经过(i,i)这样的坐标),问你一共有多少种走法,答案对p取模后输出。
第一行为测试组数T(1≤T≤10),以下T行每行两个整数,n(1≤n≤1000000000),p(1≤p≤100000),分别是网格的宽度,以及给定的模数,模数保证是质数。
共打印T行,每一行表示对p取模后的答案。
2 1 97 2 97
2 2
暂无提示
周明轩在2020-10-16 22:07:47追加了内容
0
已采纳
-
int processNew(int m,int n){
-
int **Q=new int*[m+1];
-
for(int i=0; i<=m; ++i){
-
Q[i]=new int[n+1]();
-
}
-
//初始化
-
Q[0][0]=0;
-
for(int j=1; j<=n; ++j)
-
Q[0][j]=1;
-
for(int i=1; i<=m; ++i)
-
Q[i][0]=1;
-
//迭代计算
-
for(int i=1; i<=m; ++i){
-
for(int j=1; j<=n; ++j){
-
Q[i][j]=Q[i-1][j]+Q[i][j-1];
-
}
-
}
-
int res=Q[m][n];
-
delete [] Q;
-
return res;
- }
0
0