矩陣距離 多源BFS

2021-10-10 06:57:49 字數 1209 閱讀 8323

給定乙個n行m列的01矩陣a,a[i][j] 與 a[k][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]=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≤10001≤n,m≤1000

輸入樣例:

3 40001

0011

0110

輸出樣例:

3 2 1 0

2 1 0 0

1 0 0 1

#include

#define x first

#define y second

using

namespace std;

typedef pair<

int,

int> pii;

const

int n =

1010

;int n, m;

char g[n]

[n];

int dist[n]

[n];

void

bfs(

), dy[4]

=;memset

(dist,-1

,sizeof dist)

;int hh =

0, tt =-1

;for

(int i =

1; i <= n; i ++

)for

(int j =

1; j <= m; j ++)if

(g[i]

[j]==

'1'));

}while

(q.size()

));}

}}intmain()

return0;

}

矩陣距離(多源BFS)

題目描述 給定乙個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,其...

演算法競賽 多源BFS

多源bfs與單源bfs有什麼區別呢?如何解決多源bfs?多源bfs 多個起點 多個起點同時加入佇列!核心 在求解多源bfs問題時,同時將所有起點加入佇列即可!題目鏈結 173.矩陣距離 acwing題庫 給定乙個 nn 行 mm 列的 0101 矩陣 aa,a i j 與a k l 之間的曼哈頓距離...