这....哪错了

ykj11 2022-08-10 14:38:06 19
#include <bits/stdc++.h>
using namespace std;
char a[130][130];
int vis[130][130];
int n,m;
int dy[]={1,0,-1,0};
int dx[]={0,1,0,-1};
int ans;
void dfs(int x,int y,int day){
	if(day==m) return;
	for(int i=0;i<4;i++){
		int sx=x+dx[i];
		int sy=y+dy[i];
		if(sx>0&&sx<n+1&&sy>0&&sy<=n&&!vis[sx][sy]&&a[sx][sy]=='.'){
			a[sx][sy]='@';
			vis[sx][sy]=1;
			ans++;
			dfs(sx,sy,day+1);
		}
	}
}
int main() {
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>a[i][j];
		}
	}
	cin>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(a[i][j]=='@'&&!vis[i][j]){
				vis[i][j]=1;
				ans++;
				dfs(i,j,1); 
			}
		}
	}
	cout<<ans;
    return 0;

}

{{ vote && vote.total.up }}