アルゴリズムからテストのために学習していますが、数日間対処できない問題を発見しました。だから私は助けを求めてここに書いています。
平面 上の与えられた2 つの互いに素な集合について:
G={(x_1^G, y_1^G), (x_2^G, y_2^G), ..., (x_n^G, y_n^G)}
D={(x_1^D, y_1^D), (x_2^D, y_2^D), ..., (x_n^D, y_n^D)}
Where for every 1 <= i, j <= n we have y_i^D < y_j^G, so G is above D.
counts the distance between them
次のように定義された効果的なアルゴリズムを見つけます
。
d(G,D) = min{ d(a,b): a \in G and b\in D },
where d(a,b) = |x_a - x_b| + |y_a - y_b|
O(n^2) は自明なので、答えではありません。
テスト前に復習するのは資料からなので、解決策が難しくないことを願っています。誰でも助けることができますか?
これは、よくある問題の特殊なケースのように見えると思います。しかし、それが特別な場合であれば、解決策はより簡単になるのでしょうか?