165. 【应-29-2·难】矩阵画十字越界裁剪

中等 Python 2s 256MB
通过 0/0

📋 题目描述
在图像上以 (r, c) 为中心、半径 L 画一个"十字"形:垂直方向覆盖行 [r-L, r+L],水平方向覆盖列 [c-L, c+L]。当十字超出矩阵边界时,越界部分会被自动裁剪掉。 现给定全 0 的 H×W 矩阵以及中心 (r, c) 和半径 L(保证 0<=r<H,0<=c<W,L>=0),把十字覆盖到的格子设为 1,输出最终矩阵。
📥 输入描述
第一行两个整数 H W(1<=H,W<=20)。 接下来 H 行,每行 W 个整数(保证全为 0)。 最后一行三个整数 r c L(0<=r<H,0<=c<W,0<=L<=20)。
📤 输出描述
H 行,每行 W 个整数,表示画完十字的矩阵。
输入样例
5
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
2
1
输出样例
0 0 0 0 0
0 0 1 0 0
0 1 1 1 0
0 0 1 0 0
0 0 0 0 0
提示:垂直部分:对 rr 从 max(0,r-L) 到 min(H-1,r+L),把 mat[rr][c] 设为 1。 水平部分:对 cc 从 max(0,c-L) 到 min(W-1,c+L),把 mat[r][cc] 设为 1。 中心点会被两次写入,结果仍是 1。

登录后提交代码

讨论区 0
登录后参与讨论

还没有讨论,来发表第一条吧!