文章目录1. 矩阵2. 最大化子矩阵问题3. 解法-- 3.1. 初级解法
1 矩阵
严格地说,这里的矩阵并不是严格要求的;确切地说只是二位数组或者矩形排列的一些物体(items),但是为了方便表达,就使用矩阵
这一名词了.
我们定义一个矩阵$\text{Matrix}[r,c]$是一个r行c列的二维阵列(不一定是数组),其中将$\text{Matrix}[r_1]$称为一行,或$\text{Matrix}[r_1,1..c](1\le r_1\le r)$,将$\text{Matrix}[1..r,c_1](1\le c_1\le c)$称为一列.
我们定义一个矩阵$\text{Matrix}[r,c]$中的连续一块$\text{Sub_Matrix}[r_1..r_2,c_1..c_2](1\le r_1\le r_2\le r,1\le c_1\le c_2\le c)$为$\text{Matrix}[r,c]$的一个子矩阵$\text{Sub}\left( \text{Matrix},r_1,r_2,c_1,c_2\right)$
/ 1 0 1 1 0 1 \
| 0 1 1 0 0 0 |
M_1 = | 0 1 0 1 0 0 |
| 1 1 0 0 1 0 |
\ 1 1 0 0 1 1 /
M_2 = / 0 1 0 \ = Sub(M_1,3,4,3,5)
\ 0 0 1 /
M_2 是 M_1 的子矩阵(其中灰色背景+下划线部分).
2 最大子矩阵问题
设M1=
1 | 0 | 1 | 1 | 0 | 1 |
0 | 0 | 0 | 1 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 | 1 | 1 |
1 | 1 | 1 | 0 | 0 | 0 |
其中,我们将1
称为障碍点,
时间: 2024-10-25 12:23:55