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;    }