求助,大佬们,码风清奇,见谅!
#include<bits/stdc++.h>
using namespace std;
const int N= 200;
char mp[N][N];
int vis[N][N];
int d[][2]={{1,0},{-1,0},{0,1},{0,-1}};
int n,m,t,sx,sy,ex,ey,cnt=0;
void dfs(int x,int y,int len)
{
if(len>t) return ;
if(x==ex&&y==ey&&len==t)
{
cnt++;
return ;
}
for(int i=0;i<4;i++)
{
int dx=x+d[i][0];
int dy=y+d[i][1];
if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&!vis[dx][dy]&&mp[dx][dy]!='*')
{
vis[dx][dy]=1;
dfs(dx,dy,len+1);
vis[dx][dy]=0;
}
}
}
int main()
{
cin>>n>>m>>t;
for(int i=1;i<=n;i++)
scanf("%s",mp[i]+1);
cin>>sx>>sy>>ex>>ey;
dfs(sx,sy,0);
printf("%d\n",cnt);
return 0;
}