MindFlyer ha scritto:Sarò breve: se sono riuscito a capire quello che avete detto, voi memorizzate ad ogni passo soltanto la lunghezza della sequenza più lunga che ha per base ciascuna tartaruga, ed il relativo peso. Poi aggiungete una nuova tartaruga sotto tutte le altre (non sopra, come mi sembra di capire dal discorso di gip), e vedete se può estendere le pile trovate precedentemente. E ok.
Ma la mia domanda è: se voi non considerate tutte le sequenze che si possono formare a partire da una pila non massima nell'iterazione precedente, come garantite di trovare ugualmente il massimo? Insomma, voi usate un algoritmo "greedy", supponendo che dei passaggi localmente ottimi ottimizzino anche il risultato finale. Ma non mi pare ovvio che funzioni, in questo caso.
Io veramente intendevo memorizzare, per ciascuna tartaruga, la lunghezza della sequenza più lunga che ha
sopra tutte le altre quella determinata tartaruga, aggiungendo le successive poi una alla volta dal basso; quando non ce la si può più fare, perchè la nuova tartaruga di base non regge il peso della pila, allora la pila precedente era la più lunga, con quella determinata tartaruga posta alla sommità... siccome poi la pila massima dovrà avere alla sommità una delle tartarughe, e io per ogni tartaruga ho calcolato la pila massima con essa in cima, il massimo lo trovo tra quelli calcolati...
Io non vedo il bug nel ragionamento, ma ci sta benissimo che mi sbagli... sono però curioso di sapere cosa in particolare fa acqua...
P.S.: un dubbio atroce pervade ora la mia mente: non è che si intendesse sequenze nell'ordine dato, ma formate anche da tartarughe non adiacenti nella configurazione di partenza??????? Se sì ritiro tutto quanto, poiché avevo inteso il contrario...