回答:
ヒント:ポイント すべての点がそれらによって作成された角度内に入るようにそこから2本の半直線がある場合、凸状ホールの頂点です。
このヒントに基づくアルゴリズムのアイデアを次に示します。
2つの変数を持つアルゴリズムを設計する そして (入力ポイント)。アルゴリズムは各入力ポイントを調べて更新します そして これまでにチェックしたすべての点がくさびの内側になるように 。
問題は通過する線を見つけることです と他のすべてのポイントがあります 片側。これは2次元の線形計画問題なので、教科書の幾何学的アルゴリズムを使用して時間。ただし、自己完結型のソリューションについて説明します。
表記を簡略化するには、すべてのポイントを翻訳して 起源です 、そして 。次に、実数があるかどうかを確認します そのような(1) すべてのために または(2) すべてのために 。最初のケースでは、 の上部船体の頂点です ; 2番目のケースでは、 下部船体の頂点です 。最初のケースのアルゴリズムについて説明します。他のケースは対称です。
いずれかの点で 真上にあります (つまり、 座標があります いくつかのための )、次に 上部船体に横になることはできません。この状態をチェックするのは簡単です 時間。
だからポイントがないと仮定 真上に横たわる 。の-軸分割 2つのサブセットに (左)および (正しい)。ポイントイン 負がある -座標、およびポイント ポジティブ -座標。(直下のポイント関係ありません。無視してください。)
もし 、次にすべてのポイント 厳密にラインの下にあります 、 そう 上部船体の頂点です。
もし 、次に行 の点を通過 とポイント 、ポイントなし 厳密にその線より上です。そう 船体上部の端にありますが、頂点ではありません。
もし 、次に少なくとも1つのポイント と少なくとも1つのポイント 厳密に線より上にある 。そう 船体上部に厳密にあります。
計算が簡単 そして に 時間。実際に計算する必要はありません。