1
1
我想你只能做一个水平切割或垂直切割。 一种方法 “一个矩阵” 是:(你需要重复地把这个应用到你得到的每个分区上)。 计算每行中的个数和每列中的个数,将它们存储在两个数组中,如
还要计算矩阵中1的总数,实际上是上述任意一个数组中所有元素的值之和。
例如,您可以像
现在考虑这样的水平切割: 0,0,0,0,0 0,0,1,0,0 0,0,0,1,0 0,0,0,0,0
您在每个分区中获得的数量是:
为此: 0,0,0,0,0 0,0,1,0,0 0,0,0,1,0 0,0,0,0,0
它是:
为此: 0,0,0,0,0 0,0,1,0,0 0,0,0,1,0 0,0,0,0,0
它是:
所以你只需要考虑所有的行切割和列切割,并考虑哪一个切割将导致两个相等的分区。
然后,对于从这样一个分区得到的每个矩阵,您可以递归地重复这个过程,直到您不能剪切,即数组中只有一个元素。 在每次递归中,都要维护一个计数变量并更新它。 |
Karpov · 巨大的广播变量,没有parfor优化代码? 6 年前 |
Shika93 · Matlab元素位置 6 年前 |
nymuffin · 在R中创建非对称对角线为0s的1s非对称矩阵 6 年前 |
Jakub Wagner · 厄米矩阵的特征向量[闭] 6 年前 |
yankeefan11 · 网格每个点处的矩阵 6 年前 |
Patrick · 将字母向量拆分为大小相等的向量[重复] 6 年前 |