算法1
我TMD直接暴力
C++ 代码
#include<bits/stdc++.h>
using namespace std;
#define rep(i,a,b) for(int i= a ; i < b ; ++i)
int a[10][10];
unordered_map<string,bool>has;
int n,m,k;
int dx[] = {0,0,-1,1};
int dy[] = {1,-1,0,0};
void travel(int i,int j,int c,string t)
{
if(c == k)
{
has[t] = true;
//cout<<t<<endl;
return;
}
rep(g,0,4)
{
int x = i + dx[g] , y = j + dy[g];
if(x>=0 && x < n && y>=0 && y<m)
{
travel(x,y,c+1,t+(char)(a[x][y]+'0'));
}
}
}
int main()
{
cin>>n>>m>>k;
rep(i,0,n)
rep(j,0,m)
cin>>a[i][j];
rep(i,0,n)
rep(j,0,m)
travel(i,j,-1,"");
cout<<has.size()<<endl;
}