样例过 0分 在线求教
  • 板块P1683 入门
  • 楼主fmg93
  • 当前回复1
  • 已保存回复1
  • 发布时间2025/6/13 19:49
  • 上次更新2025/6/14 15:38:34
查看原帖
样例过 0分 在线求教
1377950
fmg93楼主2025/6/13 19:49

样例过了……0分……唉……

#include<bits/stdc++.h>
using namespace std;
int n,m,qx[1000001],qy[1000001],a[100001],x,y,d;
char b[1001][1001];
int dx[5]= {0,0,-1,0,1},dy[5]= {0,-1,0,1,0};
void bfs(int x,int y) {
	int t=0,w=1;
	qx[1]=x;
	qy[1]=y;
	a[1]=1;
	while(t<w) {
		t++;
		x=qx[t];
		y=qy[t];
		for(int i=1; i<=4; i++) {
			int xx=x+dx[i];
			int yy=y+dy[i];
			if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&b[xx][yy]=='.') {
				w++;
				qx[w]=xx;
				qy[w]=yy;
				a[w]=a[t]+1;
				d=max(d,a[w]);
				b[xx][yy]='a';
			}
		}
	}
}
int main() {
	cin>>m>>n;
	for(int i=1; i<=n; i++) {
		for(int j=1; j<=m; j++) {
			cin>>b[i][j];
			if(b[i][j]=='@') {
				x=i;
				y=j;
			}
		}
	}
	bfs(x,y);
	cout<<d;
	return 0;
}
2025/6/13 19:49
加载中...