2
動的プログラミング手法を使用して、「ピザピッキングの問題」をどのように解決しますか?
ウィンクラーのピザピッキング問題: nスライスの円形ピザパイ。スライスにiは面積があります。S_iつまり、面積はパイのピースごとに異なります。 食べる人のアリスとボブは交互にスライスを選んでいますが、パイに複数のギャップを作るのは失礼です(許可されていません)。 したがって、各イーターは、オープン領域に隣接する2つのスライスの1つを取得するように制限されています。アリスが最初に行き、両方の食べる人はできるだけ多くのパイを探します。 ピザの消費を最大化するためにアリスとボブの両方が完璧にプレーした場合、動的プログラミングアルゴリズムはアリスが食べるパイの量をどのように決定しますか? 私の理解: 一般的なDP問題では、再帰ツリーを使用して、またはより厳密にはDAGを使用して視覚化できるサブ問題を見つけます。ここで、私はここで副問題を見つけるためのリードを見つけていません。 ここで、S_iの特定のセットについて、Aliceが食べるスライスの領域を最大化する必要があります。これは、(n-1)個の順列からPizzaスライスの順列を選択することに依存します。アリスが取得するn \ 2ターンごとに使用可能な2つのオプションから最大面積スライスを選択すると、順列のスライスの総面積が得られます。そのようなすべての順列についてスライスの領域を見つける必要があります。そして、これらのうち最大のもの。 誰かが私を前進させる方法を手伝ってくれる?