Winklers Problem beim Pizzasammeln:
- Eine kreisförmige Pizzakuchenscheibe
n
, bei der die Scheibei
eine Fläche hat,S_i
dh die Fläche ist für jedes Tortenstück unterschiedlich. - Die Esser Alice und Bob pflücken abwechselnd Scheiben, aber es ist unhöflich, mehrere Lücken in der Torte zu schaffen (betrachten Sie es als nicht erlaubt).
- Somit ist jeder Esser darauf beschränkt, eine der beiden Scheiben neben dem offenen Bereich zu nehmen. Alice geht zuerst und beide Esser suchen so viel Kuchen wie möglich.
Wie würde ein dynamischer Programmieralgorithmus bestimmen, wie viel Kuchen Alice isst, wenn sowohl Alice als auch Bob perfekt spielen, um ihren Pizzakonsum zu maximieren?
Mein Verständnis:
In einem allgemeinen DP-Problem suchen wir nach Unterproblemen, die mithilfe eines Rekursionsbaums oder genauer gesagt mithilfe einer DAG visualisiert werden können. Hier finde ich keinen Anhaltspunkt, um die Unterprobleme hier zu finden.
Hier müssen wir für einen gegebenen Satz von S_i s die Fläche der von Alice verzehrten Scheiben maximieren. Dies hängt von der Auswahl einer Permutation von Pizzastücken aus (n-1) Permutationen ab. Wenn Sie aus zwei Optionen, die Alice in jeder n \ 2 Runde erhält, ein Slice mit maximaler Fläche auswählen, erhalten Sie die Gesamtfläche des Slice für eine Permutation. Für all diese Permutationen müssen wir einen Slice-Bereich finden. Und dann das Maximum aus diesen.
Kann mir jemand helfen, wie ich vorgehen soll?