hdu 1978 简单dp

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=102;
const int mod=10000;
int dp[maxn][maxn],cnt,n,m,t;
int main()
{
    //freopen("//media/学习/ACM/input.txt","r",stdin);
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d",&n,&m);
        int i,j,l,r;
        for(i=1;i<=n;i++)
          for(j=1;j<=m;j++)dp[i][j]=0;
          dp[1][1]=1;
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=m;j++)
            {
                scanf("%d",&cnt);
                for(l=0;l<=cnt&&l+i<=n;l++)
                {
                    for(r=0;l+r<=cnt&&r+j<=m;r++)
                    {
                        if(l||r) dp[l+i][r+j]=(dp[l+i][r+j]+dp[i][j])%mod;
                    }
                }
            }
        }
        printf("%d\n",dp[n][m]);
    }
    return 0;
}


你可能感兴趣的:(hdu 1978 简单dp)