【发布时间】:2016-03-05 06:49:23
【问题描述】:
您有一个 n x n 网格,其中有 n 行和 n 列。对于每一列 j,您将获得一个数字 Cj,对于每一行 i,您将获得一个数字 Ri。 你需要在网格上标记一些点,这样:
- 每行标记点数最多为Ri;
- 每列标记点数最多为Cj;
- 您标记满足最后两个约束的最大点数并返回此点数。
输入为:n(网格的维度); Ri的序列和Cj的序列。
例如,在这个网格中,返回值为 34 example
在线性时间内找到一个算法:O(n) 或 O(n log(n)) 并带有演示。 我找到了 Max-Flow alg 的解决方案。但是复杂度太高了。
【问题讨论】:
标签: algorithm dynamic-programming pseudocode greedy max-flow