专栏文章
C
个人记录参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miqw9gw0
- 此快照首次捕获于
- 2025/12/04 11:46 3 个月前
- 此快照最后确认于
- 2025/12/04 11:46 3 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
int n,m,sx,sy,ex,ey,head,tail;
char a[1001][1001];
int q[1000001][4];
int d[]={0,0,1,0,-1,0};
void print(int k){
if (q[k][3]!=0)
print(q[k][3]);
printf("(%d,%d)",q[k][1],q[k][2]);
if (k!=tail)
cout<<"->";
}
int main(){
while (1){
head=tail=1;
cin>>n>>m;
if (n==0&&m==0)
break;
bool f=1;
memset(q,0,sizeof(q));
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
cin>>a[i][j];
cin>>sx>>sy>>ex>>ey;
q[1][1]=sx;
q[1][2]=sy;
q[1][3]=0;
while (head<=tail&&f){
int tx,ty;
for (int i=1;i<=4;i++){
tx=q[head][1]+d[i];
ty=q[head][2]+d[i+1];
if (tx>0&&tx<=n&&ty>0&&ty<=m&&a[tx][ty]=='.'){
a[tx][ty]='#';
tail++;
q[tail][1]=tx;
q[tail][2]=ty;
q[tail][3]=head;
}
if (tx==ex&&ty==ey){
print(tail);
cout<<endl;
f=0;
break;
}
}
head++;
}
}
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...