Luogu P3120 [USACO15FEB]牛跳房子(金)Cow Hopscotch (Gold)

题目传送门

这是一道典型的记忆化搜索题。

f[x][y]表示以x,y为右下角的方案数。

code

#include <cstdio>
#define mod 1000000007
using namespace std;
int n,m,k,a[751][751],f[751][751];
int DP(int x,int y){
    if(f[x][y])return f[x][y];
        for(int i=1;i<x;i++)
            for(int j=1;j<y;j++)
                if(a[i][j]!=a[x][y])f[x][y]+=DP(i,j),f[x][y]%=mod;
    return f[x][y];          
}
int main(){
    scanf("%d %d %d
",&n,&m,&k);
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)scanf("%d",&a[i][j]);
    f[1][1]=1;
    printf("%d",DP(n,m));
    return 0;
}
原文地址:https://www.cnblogs.com/Cptraser/p/7593458.html