Il problema di selezione della pizza di Winkler:
- Una torta di pizza circolare di fette
n
, dove la porzionei
ha l'areaS_i
i.e, l'area è diversa per ogni pezzo di torta. - Mangiato Alice e Bob a turno raccolgono le fette, ma è maleducato creare più spazi vuoti nella torta (non considerare consentito).
- Così ogni mangiatore è limitato a prendere una delle due fette adiacenti alla regione aperta. Alice va per prima, ed entrambi i mangiatori cercano più torta possibile.
In che modo un algoritmo di programmazione dinamica determina la quantità di torta che Alice mangia, se Alice e Bob giocano perfettamente per massimizzare il consumo di pizza?
Comprensione:
In un problema DP generale, andiamo avanti nella ricerca di sotto-problemi che possono essere visualizzati usando l'albero di ricorsione o, più strettamente, usando un DAG. Qui, non sto trovando alcun vantaggio per trovare i sotto-problemi qui.
Qui, per un dato set di S_i s, dobbiamo massimizzare l'area delle fette mangiate da Alice. Questo dipenderà dalla scelta di una permutazione di fette di Pizza da (n-1) permutazioni. Scegliendo una porzione di area massima tra due opzioni disponibili in ogni n \ 2 giri, Alice ottiene, ci darà l'area totale della fetta per una permutazione. Dobbiamo trovare l'area della fetta per tutte queste permutazioni. E poi il massimo da questi.
Qualcuno può darmi una mano su come andare avanti?