Problema de escolha de pizza de Winkler:
- Uma pizza circular de
n
fatias de pizza , onde a fatiai
tem áreaS_i
, ou seja, a área é diferente para cada pedaço de pizza. - Comedores Alice e Bob se revezam escolhendo fatias, mas é rude criar várias lacunas na torta (considere isso não permitido).
- Assim, cada comedor é restrito a tomar uma das duas fatias adjacentes à região aberta. Alice vai primeiro, e os dois comedores buscam o máximo de torta possível.
Como um algoritmo de programação dinâmica determinaria a quantidade de torta que Alice come, se Alice e Bob jogam perfeitamente para maximizar seu consumo de pizza?
Meu entendimento:
Em um problema geral de DP, avançamos na busca de subproblemas que podem ser visualizados usando a árvore de recursão ou, mais precisamente, usando um DAG. Aqui, não estou encontrando nenhuma pista para encontrar os subproblemas aqui.
Aqui, para um determinado conjunto de S_i s, precisamos maximizar a área de fatias comidas por Alice. Isso dependerá da escolha de uma permutação de fatias de pizza dentre (n-1) permutações. A escolha de uma fatia máxima da área dentre duas opções disponíveis a cada n \ 2 turnos que Alice obtém nos fornecerá a área total da fatia para uma permutação. Precisamos encontrar a área da fatia para todas essas permutações. E então o máximo disso.
Alguém pode me ajudar em como avançar?