Mi sono imbattuto in questo problema che sembra piuttosto interessante. Ci sono alcuni film che vogliamo vedere tutti loro, ma mostrano solo nei seguenti orari:Algoritmo di tutti i filmati
movieA : 15
movieB : 14, 15, 17
movieC : 15, 17
movieD : 15, 20
possiamo guardare A a 15, B a 14, C a 17 e D a 20, quindi è possibile guardarli tutti Nota che non puoi guardare C a 15, non fattibile.
Il problema, come avete intuito, è se possiamo guardarli tutti.
Ovviamente possiamo risolverlo con il backtracking, provando tutte le possibilità. C'è un modo migliore per farlo? Ho un'idea di iniziare con i film con il minor numero di volte disponibili prima, in questo modo possiamo trovare la soluzione più veloce se c'è una soluzione, la complessità temporale nel caso peggiore è sempre la stessa.
Esiste un algoritmo migliore per questo problema?
P.S. Come ho chiesto @gen, ho dimenticato di indicare che ogni film è di 1 ora, quindi se ne guardi uno alle 14:00, non ti mancherà quello alle 15:00. Grazie per avermelo chiesto
quanto è lungo un film? – gen
@gen ogni film è un'ora, quindi non devi preoccuparti se guardi un film alle 14:00, potresti perdere quello alle 15:00. Ottima domanda! – Arch1tect
Sembra un problema di corrispondenza massimo su un grafico bipartito. –