代码如下
#include<bits/stdc++.h>
using namespace std;
int n,m,p,cnt=0,dx[2]={1,0},dy[2]={0,1};
char maps[105][105];
void dfs(int li,int rj,int ck)
{
if(ck==p){
cnt++;
return ;
}
for(int i=0;i<2;i++){
int tx=li+dx[i];
int ty=rj+dy[i];
if(tx>=1&&ty>=1&&tx<=n&&ty<=m&&maps[tx][ty]=='.')
dfs(tx,ty,ck+1);
}
}
int main ()
{
cin>>n>>m>>p;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>maps[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
if(maps[i][j]=='.'){
dfs(i,j,1);
}
}
if(p==1)cnt/=2;
printf("%d",cnt);
return 0;
}