您有一个n x n网格,其中有n行和n列。对于每一列j,您将获得一个数字 C j,对于每一行i您将获得一个数字 R i。您需要在网格上标记一些点,这样:
- 每行标记点数最多为 R i;
- 每列的标记点数最多为 C j;
- 您标记满足最后两个约束的最大点数并返回此点数。
输入为:n(网格的维度);R i的序列和 C j的序列。
例如在这个网格中,回报是 34 例子
在线性时间内找到一个算法:O( n ) 或 O( n log( n )) 并带有演示。我找到了 Max-Flow alg 的解决方案。但是复杂度太高了。