Posso risolvere Copying Books Problem utilizzando il metodo di ricerca binario in quanto è facile da implementare. Ma ho appena iniziato a risolvere i problemi di dinamica programmazione e volevo sapere soluzione dinamica Programmazione per il problemaCopia Libri UVa Online Judge Dynamic Programing Solution
Prima dell'invenzione della libro-stampa, è stato molto difficile fare una copia di un libro. Tutti i contenuti dovevano essere riscritti a mano da chiamato scribers. Lo scriber aveva ricevuto un libro e dopo diversi anni aveva terminato la sua copia. Uno degli scrittori più famosi viveva nel XV secolo e il suo nome era Xaverius Endricus Remius Ontius Xendrianus (Xerox). Ad ogni modo, il lavoro era molto noioso e noioso. E l'unico modo per accelerare era assumere più scriber.
C'era una volta, c'era un gruppo teatrale che voleva suonare le famose tragedie antiche . Gli script di questi spettacoli erano divisi in molti libri e attori avevano bisogno di più copie di loro, naturalmente. Così loro, , assunsero molti scribers per fare copie di questi libri. Immaginate di avere m libri (numerati da 1, 2, ...., m) che possono avere diverso numero di pagine (P_1, P_2, ..., P_M) e si vuole fare una copia di ogni di loro. Il tuo compito è quello di dividere questi libri tra k scribi, k < = m. Ogni libro può essere assegnato solo a un singolo scriber e ogni scriber deve ottenere una sequenza continua di libri. Ciò significa che, non ci esiste una successione crescente di numeri 0 = b_0 < q_1 < q_2, ... < b_ {k-1} < = b_k = m $ tale che i-esimo scriber ottiene una sequenza di libri con i numeri tra bi-1 + 1 e bi. Il tempo necessario per creare una copia di di tutti i libri è determinato dallo scriber a cui è stato assegnato il maggior numero di lavori . Pertanto, il nostro obiettivo è ridurre al minimo il numero massimo di pagine assegnate a un singolo scriber. Il tuo compito è trovare l'assegnazione ottimale .
Per la ricerca binaria sto facendo quanto segue.
Low =1 and High = Sum of pages of all books
Run Binary search
For Mid(Max pages assigned to a scribe), assign books greedily such that no scribe gets page more than MAX
If scribes remain without work it means actual value is less than MID, if Books remain actual pages is more MID and I am updating accordingly.