求助,玄关P1683
查看原帖
求助,玄关P1683
1057081
Evelyn_wsx_star楼主2024/7/1 09:54
#include<bits/stdc++.h>
using namespace std;
int n,m;
int l[5]= {0,1,0,-1,0},h[5]= {0,0,1,0,-1};
int a[1001][1001];
int b[1001][1001];
string s;
int ans=1;
int kx,ky;
void dfs(int x,int y) {
	for(int i=1; i<=4; i++) {
		int xx=x+l[i];
		int yy=y+h[i];
		if(a[xx][yy]==0&&xx<=n&&yy<=m&&xx>=1&&yy>=1) {
			ans++;
			a[xx][yy]=-1;
			dfs(xx,yy);
		}
	}
}
int main() {

	cin>>m>>n;
	for(int i=1; i<=n; i++) {
		cin>>s;
		for(int j=1; j<=m; j++) {
			if(s[j]=='@') {
				kx=i;
				ky=j;
				a[i][j]=0;
			} else if(s[j]=='.') {
				a[i][j]=0;
			} else {
				a[i][j]=-1;
			}
		}
	}
	a[kx][ky]=-1;
	dfs(kx,ky);
	cout<<ans;
	return 0;
}
2024/7/1 09:54
加载中...