Problème de cueillette de pizza de Winkler:
- Une tarte à pizza circulaire de
n
tranches, où la tranchei
a une zone,S_i
c'est-à-dire que la zone est différente pour chaque morceau de tarte. - Les mangeurs Alice et Bob choisissent à tour de rôle des tranches, mais il est impoli de créer plusieurs lacunes dans la tarte (considérez que ce n'est pas autorisé).
- Ainsi, chaque mangeur est limité à prendre l'une des deux tranches adjacentes à la région ouverte. Alice va en premier, et les deux mangeurs cherchent autant de tarte que possible.
Comment un algorithme de programmation dynamique déterminerait-il combien de tarte Alice mange, si Alice et Bob jouent parfaitement pour maximiser leur consommation de pizza?
Ma compréhension:
Dans un problème DP général, nous allons de l'avant avec la recherche de sous-problèmes qui peuvent être visualisés à l'aide d'un arbre de récursivité ou, plus précisément, à l'aide d'un DAG. Ici, je ne trouve aucune piste pour trouver les sous-problèmes ici.
Ici, pour un ensemble donné de S_i s, nous devons maximiser la surface des tranches consommées par Alice. Cela dépendra du choix d'une permutation de tranches de pizza parmi (n-1) permutations. Choisir une tranche de zone maximale parmi deux options disponibles à chaque n \ 2 tours qu'Alice obtient, nous donnera la zone totale de tranche pour une permutation. Nous devons trouver une zone de tranche pour toutes ces permutations. Et puis le maximum de ceux-ci.
Quelqu'un peut-il m'aider à avancer?