社区讨论

wa两个点,悬关

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

讨论操作

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

当前回复
1 条
当前快照
1 份
快照标识符
@lr7m99gr
此快照首次捕获于
2024/01/10 18:06
2 年前
此快照最后确认于
2024/01/10 18:25
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
char a[1010][1010];
int dx[5]={0,0,1,0,-1},dy[5]={0,1,0,-1,0},fx,fy,x2,y2,b[1000500][3];
int f[1010][1010];
queue <int> q; 
int main(){
	//freopen("P1746_3.in","r",stdin); 
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>a[i][j];
			if(a[i][j]==1){
				f[i][j]=1;
			}
		}
	}
	cin>>fx>>fy>>x2>>y2;
	b[1][1]=fx,b[1][2]=fy;
	//q.push(x1);
	//q.push(x2);
	int h=1,t=1,x=1,y=1;
//	f[fx][fy]=1;
	while(h<=t){
		x=b[h][1],y=b[h][2];
		for(int i=1;i<=4;i++){
			if(f[x+dx[i]][y+dy[i]]==0&&x+dx[i]>=1&&x+dx[i]<=n&&y+dy[i]>=1&&y+dy[i]<=n){
				f[x+dx[i]][y+dy[i]]=f[x][y]+1;
				t++;
				b[t][1]=x+dx[i],b[t][2]=y+dy[i];
				
				if(x+dx[i]==x2&&y+dy[i]==y2){
				cout<<f[x+dx[i]][y+dy[i]];
				return 0;
			}
			}
		}
		h++;
	}
}

回复

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

正在加载回复...