Ciao a tutti, non riesco a capire la strategia per risolvere il problema, qualcuno potrebbe per piacere darmi un consiglio?
E’ utile considerare i grattacieli ad intervalli di grandezza M?
se ti arrivano 3 blocchi alla volta, e hai 4 grattacieli di altezza (1000,4,2,2) riesce la costruzione? E se le altezze fossero (4, 4,2,2) ? prova a “spostare” i grattacieli spero di esserti d’aiuto
La somma totale dev’essere divisibile per M se lo è posso ordinare i grattacieli per altezza prendere i primi M grattacieli con H[i] > 0 e sottrarre dalla loro somma S, M moltiplicato per il grattacielo di altezza minima Hmin (nell’intervallo considerato) e i grattacieli più alti li riconsidero come “nuovi grattacieli” di altezza H[i] - Hmin.
Ad esempio (4,4,2,2), con una coda di priorità estraggo i primi M (4,4,2) la loro somma è 10, sottraggo M2 e ripusho i due grattacieli con (2,2); ne estraggo di nuovo M(2,2,2) 6-M2.
Con gli ultmi M grattacieli se sono rimasti meno di M non è possibile costruire al contrario se la somma totale è 0, è possibile.
Però come complessità se non sbaglio sarebbe 2QNlogN senza considerare che alcuni grattacieli verranno inseriti due o più volte, quindi penso di non aver capito
L’osservazione della somma divisibile per M è corretta, e una volta che hai verificato ciò potresti in qualche modo assicurarti che ogni carico non dia più di un mattone a qualche grattacielo. Prova a ragionare sul numero di carichi che arriveranno…
Arriveranno somma/M carichi ma non capisco come assicurarmi che non arrivi, per ogni carico, più di un mattone ad un grattacielo.
Potrei ordinare i grattacieli e dare un numero di mattoni ad ogni grattacielo pari all’altezza minima, così dopo aggiungo ad ogni grattacielo tanti mattoni quanti ne mancano per completare il nuovo grattacielo più basso attuale e vado avanti fino a che ogni grattacielo è completo oppure rimangono meno di M grattacieli.
Com’è come idea?
Potrei avere qualche aiuto in più?
Prova a riguardare gli esempi di CarlaZZ, quale è la differenza tra loro? Forse che c’è un numero troppo grande degli altri… Se guardassimo il massimo tra le altezze dei grattacieli?