1 条题解
-
0
C++ :
#include<stdio.h> #include<queue> using namespace std; struct node { int x,y; }; int main() { int n; while(scanf("%d",&n)!=EOF) { char a[1000][1000]; int bb[1000][1000]; getchar(); queue<node>q; for (int i=0;i<n;i++) { scanf("%s",a[i]); getchar(); } node as,ab; scanf("%d%d",&as.x,&as.y); as.x--;as.y--; scanf("%d%d",&ab.x,&ab.y); ab.x--;ab.y--; a[as.x][as.y]='1'; q.push(as);int all=0; bb[as.x][as.y]=0; while(!q.empty()) { if (q.front().x==ab.x&&q.front().y==ab.y) {break;} else { node ww; all=bb[q.front().x][q.front().y]; if (q.front().x-1>=0&&a[q.front().x-1][q.front().y]=='0') {bb[q.front().x-1][q.front().y]=all+1;a[q.front().x-1][q.front().y]='1';ww.x=q.front().x-1;ww.y=q.front().y;q.push(ww);} if (q.front().y-1>=0&&a[q.front().x][q.front().y-1]=='0') {bb[q.front().x][q.front().y-1]=all+1;a[q.front().x][q.front().y-1]='1';ww.x=q.front().x;ww.y=q.front().y-1;q.push(ww);} if (q.front().y+1<=n-1&&a[q.front().x][q.front().y+1]=='0') {bb[q.front().x][q.front().y+1]=all+1;a[q.front().x][q.front().y+1]='1';ww.x=q.front().x;ww.y=q.front().y+1;q.push(ww);} if (q.front().x+1<=n-1&&a[q.front().x+1][q.front().y]=='0') {bb[q.front().x+1][q.front().y]=all+1;a[q.front().x+1][q.front().y]='1';ww.x=q.front().x+1;ww.y=q.front().y;q.push(ww);} } q.pop(); } printf("%d\n",bb[ab.x][ab.y]); } return 0; }
- 1
信息
- ID
- 1982
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者