AcWing 173 矩陣距離(bfs)

2022-07-25 16:27:18 字數 1463 閱讀 6963

給定乙個n行m列的01矩陣a,a[i][j] 與 a[k][l] 之間的曼哈頓距離定義為:di

st(a

[i][

j],a

[k][

l])=

|i−k

|+|j

−l|'>dist(a[i][j],a[k][l])=|i−k|+|j−l|

dist(a[i][j],a[k][l])=|i−k|+|j−l|

輸出乙個n行m列的整數矩陣b,其中:b[

i][j

]=mi

n1≤x

≤n,1

≤y≤m

,a[x

][y]

=1⁡d

ist(

a[i]

[j],

a[x]

[y])

'>b[i][j]=min1≤x≤n,1≤y≤m,a[x][y]=1dist(a[i][j],a[x][y])

b[i][j]=min1≤x≤n,1≤y≤m,a[x][y]=1⁡dist(a[i][j],a[x][y])

輸入格式

第一行兩個整數n,m。

接下來乙個n行m列的01矩陣,數字之間沒有空格。

輸出格式

乙個n行m列的矩陣b,相鄰兩個整數之間用乙個空格隔開。

資料範圍1≤

n,m≤

1000

'>1≤n,m≤1000

1≤n,m≤1000

輸入樣例:

3 4

0001

0011

0110

輸出樣例:
3 2 1 0

2 1 0 0

1 0 0 1

演算法:bfs

題意:就是給你乙個矩陣,然後矩陣裡面有很多初始點,你需要求這些初始點到矩陣其他位置的最小距離。

#include #include 

#include

using

namespace

std;

const

int maxn = 1e3+7

;int

n, m;

intmap[maxn][maxn];

intstep[maxn][maxn];

int dir[4][2] = ;

bool check(pairnext)

if(step[next.first][next.second] != -1

)

return

true;}

void

bfs()

else}}

while(!q.empty()) }}

}int

main()

}bfs();

for(int i = 1; i <= n; i++)

}return

0;

}

AcWing 173 矩陣距離

題目描述 給定乙個n行m列的01矩陣a,a i j 與 a k l 之間的曼哈頓距離定義為 dist a i j a k l i k j l 輸出乙個n行m列的整數矩陣b,其中 b i j min1 x n,1 y m,a x y 1dist a i j a x y 輸入格式 第一行兩個整數n,m。...

AcWing 173 矩陣距離 多源bfs模板

acwing 173.矩陣距離 給定乙個n行m列的01矩陣a,a i j 與 a k l 之間的曼哈頓距離定義為 d is t a i j a k l i k j l dist a i j a k l i k j l dist a i j a k l i k j l 輸出乙個n行m列的整數矩陣b,其...

ACWING196 質數距離

給定兩個整數l和u,你需要在閉區間 l,u 內找到距離最接近的兩個相鄰質數c1和c2 即c2 c1是最小的 如果存在相同距離的其他相鄰質數對,則輸出第一對。同時,你還需要找到距離最遠的兩個相鄰質數d1和d2 即d1 d2是最大的 如果存在相同距離的其他相鄰質數對,則輸出第一對。輸入格式 每行輸入兩個...