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

时间:2023-03-08 17:28:58

题目传送门

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

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

code

#include <cstdio>
#define mod 1000000007
using namespace std;
int n,m,k,a[][],f[][];
int DP(int x,int y){
if(f[x][y])return f[x][y];
for(int i=;i<x;i++)
for(int j=;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",&n,&m,&k);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)scanf("%d",&a[i][j]);
f[][]=;
printf("%d",DP(n,m));
return ;
}