几乎是DFS模板,详细见代码
#include<bits/stdc++.h>
using namespace std;
int n,m,k,g[10][10];
unordered_set<int>S;
int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};
//int dx[4]={0,0,1,-1},dy[4]={1,-1,0,0};
void dfs(int x,int y,int u,int num){
if(u==k) S.insert(num);
else{
for(int i=0;i<4;i++){
int a=x+dx[i],b=y+dy[i];
if(a>=0&&a<n&&b>=0&&b<m){
//cout<<num<<endl;
dfs(a,b,u+1,num*10+g[a][b]);
}
}
}
}
int main(){
cin>>n>>m>>k;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++) {
cin>>g[i][j];
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++) {
dfs(i,j,0,g[i][j]);
}
}
cout<<S.size();
}