生活随笔
收集整理的這篇文章主要介紹了
BZOJ2252(BFS水题)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題意 給一個(gè)0 1矩陣,求每個(gè)0到最近的1的曼哈頓距離
水題 廣搜即可
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const int N=1005;
char aa[N];
int a[N][N],ans[N][N],que[N*N][3],tx[4]={0,1,0,-1},ty[4]={1,0,-1,0},b[N][N];
int re(){char c=getchar();int all=0,pd=1;for(;c>'9'||c<'0';c=getchar()) if(c=='-') pd=-1;while(c>='0'&&c<='9') all=all*10+c-'0',c=getchar();return all*pd;
}
int main(){int n=re(),m=re();memset(ans,60,sizeof(ans));int head=1,tail=0;for(int i=1;i<=n;i++){scanf("%s",aa+1);for(int j=1;j<=m;j++){a[i][j]=aa[j]-'0';if(a[i][j]==1) que[++tail][1]=i,que[tail][2]=j,ans[i][j]=0;}}while(head<=tail){int x=que[head][1],y=que[head][2];for(int i=0;i<=3;i++){int dx=x+tx[i],dy=y+ty[i];if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&!a[dx][dy]&&!b[dx][dy]){ans[dx][dy]=min(ans[dx][dy],ans[x][y]+1);que[++tail][1]=dx;que[tail][2]=dy;b[dx][dy]=1;}}head++;}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++)printf("%d ",ans[i][j]);printf("\n");}
}
轉(zhuǎn)載于:https://www.cnblogs.com/BLUE-EYE/p/9505942.html
總結(jié)
以上是生活随笔為你收集整理的BZOJ2252(BFS水题)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。