給定乙個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]
=1d
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]=1dist(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是最大的 如果存在相同距離的其他相鄰質數對,則輸出第一對。輸入格式 每行輸入兩個...