qduoj 104 棋盘里的数学(记忆化搜索)

来源:互联网 发布:perl 数组查找字符串 编辑:程序博客网 时间:2024/05/20 08:42

棋盘里的数学

发布时间: 2016年9月13日 20:39   最后更新: 2016年9月20日 12:04   时间限制: 1000ms   内存限制: 128M

lhcoder有一个n行m列的棋盘,有一颗棋子从左上角(1,1)开始移动,每次只能往右或者往下移动一格,到右下角(n,m)一共有多少移动方案?

有多组测试数据,每组测试数据中有两个整数n和m(2 <= n, m <= 1000),代表为n行m列的棋盘。

一个整数p,代表从左上角(1,1)移动到右下角(n,m)的方案数,由于方案数可能比较大,结果请对99991取模。

 复制
2 2
2
 复制
2 3
3
#include<iostream>#include<cstring>using namespace std;int n,m;int ans[1003][1100];int dfs(int x,int y){if(ans[x][y]){return ans[x][y];}if(x==n&&y==m){return 1;}long long ret=0;if(y+1<=m){ret+=dfs(x,y+1);ret%=99991;}if(x+1<=n){ret+=dfs(x+1,y);ret%=99991;}return ans[x][y]=ret;}int main(){while(cin>>n>>m){memset(ans,0,sizeof(ans));printf("%d\n",dfs(1,1));}return 0;}


0 0
原创粉丝点击