社区讨论

50分代码 求助

P1746离开中山路参与者 3已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mi7prs3n
此快照首次捕获于
2025/11/21 01:37
4 个月前
此快照最后确认于
2025/11/21 01:37
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int f[1005][1005],used[1005][1005],n,nx,ny,mx,my,px,py,tmpx,tmpy;
int dx[]={1,-1,0,0};
int dy[]={0,0,1,-1};
char a;
queue <pair<int,int> > q;
void bfs(){
	while (!q.empty()){
		px=q.front().first;
		py=q.front().second;
		q.pop();
		for (int i=0;i<3;i++){
			tmpx=px+dx[i];
			tmpy=py+dy[i];
			if (tmpx>0&&tmpx<=n&&tmpy>0&&tmpy<=n&&f[tmpx][tmpy]==0&&used[tmpx][tmpy]==0){
				used[tmpx][tmpy]=1;
				f[tmpx][tmpy]=f[px][py]+1;
				if (tmpx==mx&&tmpy==my){
					printf("%d\n",f[tmpx][tmpy]);
					exit(0);
				}
				q.push(make_pair(tmpx,tmpy));
			}
		}
	}
}
int main(){
	scanf("%d",&n);
	for (int i=1;i<=n;i++)
		for (int j=1;j<=n;j++){
			cin>>a;
			f[i][j]=a-'0';
		}
	scanf("%d%d%d%d",&nx,&ny,&mx,&my);
	q.push(make_pair(nx,ny));
	used[nx][ny]=1;
	bfs();
	return 0;
} 

回复

2 条回复,欢迎继续交流。

正在加载回复...