165. 【应-29-2·难】矩阵画十字越界裁剪
中等
Python
📋 题目描述
在图像上以 (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。
请登录后提交代码