hdu 1978
来源:互联网 发布:calendar.js api 编辑:程序博客网 时间:2024/05/01 10:59
/* dp[i][j]+=dp[x][y]; (x,y)到(i,j)的曼哈顿距离小于map[i][j]*/#include<stdio.h>#include<string.h>#define maxn 150int map[maxn][maxn],dp[maxn][maxn];int main(){ int t,i,j,x,y; int n,m; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); for(i=1;i<=n;i++) for(j=1;j<=m;j++) scanf("%d",&map[i][j]); memset(dp,0,sizeof(dp)); dp[1][1]=1; for(i=1;i<=n;i++) for(j=1;j<=m;j++) for(x=0;x<=map[i][j] && x<=n ;x++) for(y=0;x+y<=map[i][j] && y<=m;y++) if(x!=0 || y!=0) dp[i+x][j+y]=(dp[i+x][j+y]+dp[i][j])%10000; //printf("************\n"); /* for(i=1;i<=n;i++) { for(j=1;j<=m;j++) printf("%d ",dp[i][j]); printf("\n"); } */ printf("%d\n",dp[n][m]); } return 0; }