ここでの問題は、与えられた点のセットからすべてのマンハッタン距離にわたって最小の合計を与えるすべての整数点のセットを見つけることです!
例えば:
与えられた点のセット{P1、P2、P3...Pn}を持つことができます
基本的な問題は、点{P1、P2、P3...Pn}からのすべての距離にわたって最小の合計を持つXなどの点を見つけることです。
すなわち|P1-X| + | P2-X | + .... + | Pn-X | = D、ここでDはすべてのXで最小になります。
さらに一歩進むと、上記の条件を満たすXの値が複数存在する可能性があります。つまり、同じ値Dを与える複数のXが可能である可能性があります。したがって、そのようなXをすべて見つける必要があります。
誰もが考えることができる基本的なアプローチの1つは、入力の中央値を見つけてから、この投稿で言及されている座標をブルートフォースすることです。
しかし、そのようなアプローチの問題は、中央値が非常に離れた2つの値を与える場合、特定の時間内に実行されることのないすべてのポイントをブルートフォース攻撃することになります。
それで、ポイントが非常に離れている場合でも結果をもたらす他のアプローチはありますか(中央値は10 ^ 9のオーダーの範囲を与えます)。