30求调
查看原帖
30求调
1509960
hjluojc楼主2025/7/2 10:25
#include<bits/stdc++.h>
using namespace std;
int r,c,ans,k;
char a[110][110];
int xr[3]={0,0,-1};
int yr[3]={0,1,0};
bool check(int x,int y){
	if(x<1||x>r||y<1||y>c) return false;
	if(a[x][y]=='#') return false;
	return true;
}
void dfs(int x,int y,int sum){
	if(sum==k){
		ans++;
		return;
	}
	for(int i=1;i<=2;i++)
	{
		int tx=x+xr[i];
		int ty=y+yr[i];
		if(check(tx,ty))
			dfs(tx,ty,sum+1);
	}
}
int main(){
	cin>>r>>c>>k;
	for(int i=1;i<=r;i++)
		for(int j=1;j<=c;j++)
			cin>>a[i][j];
	for(int i=1;i<=r;i++)
		for(int j=1;j<=c;j++)
			if(a[i][j]=='.') 
				dfs(i,j,1);
	cout<<ans;
}


2025/7/2 10:25
加载中...