#include<bits/stdc++.h>
using namespace std;
const int mod = 1e9+7;
int n,m,k;
int s[55][55];
int dp[55][55][15][15];
int main()
{
cin>>n>>m>>k;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= m; j++)
{
cin>>s[i][j];
s[i][j]++;
}
}
dp[1][1][0][0] = 1;
dp[1][1][1][s[1][1]] = 1;
for(int i = 1; i <= n; i++)//x
{
for(int i1 = 1; i1 <= m; i1++)//y
{
for(int i2 = 0; i2 <= k; i2++)//num
{
for(int i3 = 0; i3 <= 15; i3++)//v
{
dp[i][i1][i2][i3] = (dp[i][i1][i2][i3]+dp[i][i1 - 1][i2][i3]) % mod;
dp[i][i1][i2][i3] = (dp[i][i1][i2][i3]+dp[i - 1][i1][i2][i3]) % mod;
if(i2 > 0 && i3 == s[i][i1])
{
for(int i4 = 0; i4 < i3; i4++)
{
dp[i][i1][i2][i3] = (dp[i][i1][i2][i3] + dp[i-1][i1][i2-1][i4]) % mod;
dp[i][i1][i2][i3] = (dp[i][i1][i2][i3] + dp[i][i1-1][i2-1][i4]) % mod;
}
}
}
}
}
}
int ans = 0;
for(int i = 0; i <= 15; i++)
ans = (ans + dp[n][m][k][i])%mod;
cout<<ans<<endl;
return 0;
}
蓝桥杯地宫取宝
最新推荐文章于 2025-07-31 22:28:05 发布