码迷,mamicode.com
首页 > 其他好文 > 详细

hdu1978

时间:2015-11-20 20:07:32      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:dp

//How many ways 
//记忆化搜索 
#include<stdio.h>
#include<string.h>

int n,m,dp[105][105],p[105][105];
int solve(int x,int y);

int main()
{
	int t,i,j;
	while(scanf("%d",&t)!=EOF)
	{
		while(t--){
			scanf("%d%d",&n,&m);
			for(i=1;i<=n;i++){
				for(j=1;j<=m;j++){
					scanf("%d",&p[i][j]);
				}
			}
			memset(dp,-1,sizeof(dp));
			dp[n][m]=1;//路径出口 
			printf("%d\n",solve(1,1));
		}
	}
	return 0;
}
int solve(int x,int y){
	int i,j;
	if(dp[x][y]>=0) return dp[x][y];//判断是否已走过 
	dp[x][y]=0;
	for(i=0;i<=p[x][y];i++){
		for(j=0;j<=p[x][y]-i;j++){
			if(x+i>=0&&y+j>=0&&x+i<=n&&y+j<=m){
				dp[x][y]=(dp[x][y]+solve(x+i,y+j))%10000;//转态转移方程
			}
		}
	} 
	return dp[x][y];
}


本文出自 “apple” 博客,请务必保留此出处http://22222222222.blog.51cto.com/9928498/1715182

hdu1978

标签:dp

原文地址:http://22222222222.blog.51cto.com/9928498/1715182

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!