Ciao a tutti,

Ciao a tutti,
Io più che ai testcase sarei interessato ad una dritta… è da Maggio che lo provo °L°
Nessuno risponde? :0
Vediamo se vi è d’aiuto:
Vediamo se vi è d'aiuto:Innanzitutto grazie per aver risposto! :PConsideriamo un gallo x, e dividiamo i rimanenti in: galli con braccia più corte e galli con braccia più lunghe del gallo x.I galli dalle braccia lunghe formano una torre, in cima alla quale sale il gallo x. Supponiamo che, in questo modo, egli non sia in grado di uscire. Cosa si può concludere?fram
se X non può uscire allora nessuno prima di X potrà mai uscire.Cosa intendi con "prima di X"? I galli con le braccia corte?VashTheStampede
L'unica cosa che mi viene in mente è che se X non riesce ad uscire, allora gli conviene lasciare il suo posto a qualcun altro della pila, che avrà delle braccia più lunghe che gli permetteranno di uscire.se X non può uscire allora nessuno prima di X potrà mai uscire.Cosa intendi con "prima di X"? I galli con le braccia corte?VashTheStampede
In tal caso non è vero che nessuno di loro potrà mai uscire dal pozzo, perché se per esempio tutti i galli formassero una torre, magari anche un gallo dalle braccia cortissime potrebbe farcela.Invece la torre che dicevo io è composta solo dai galli con braccia più lunghe di quelle di X.fram
L'unica cosa che mi viene in mente è che se X non riesce ad uscire, allora gli conviene lasciare il suo posto a qualcun altro della pila, che avrà delle braccia più lunghe che gli permetteranno di uscire.E se ha braccia più lunghe ma è più basso? Io stavo pensando che forse quell'ordinamento va fatto in base alla lunghezza totale data dalla somma dell'altezza con la lunghezza delle braccia. Così se X non riesce ad uscire arrampicandosi sui più lunghi vuol dire che almeno uno tra quelli meno lunghi di X non riesce ad uscire in senso assoluto. Quindi forse posso iterare da quello più lungo a quello più corto, in modo che: se X non riesce ad uscire, prendo il più alto tra quelli non più lunghi di X e decido che non uscirà mai. Sottraggo la sua altezza alla profondità del pozzo. Se X non riesce ancora ad uscire ripeto quello che ho fatto prima. Se ora X riesce ad uscire passo al secondo più lungo dopo X che non ho già scartato e ripeto. Quando arrivo all'ultimo la situazione sarà che quelli rimasti saranno in grado di uscire arrampicandosi ognuno sulle spalle dei più lunghi, dal più corto al più lungo, fino all'ultimo che esce da solo.mark03
Così se X non riesce ad uscire arrampicandosi sui più lunghi vuol dire che almeno uno tra quelli meno lunghi di X non riesce ad uscire in senso assoluto.Su questa parte non sono convinto, può essere che tutti quelli più corti di X riescano ad uscire.
Hai ragione, tra quelli meno lunghi di X va incluso anche X. Quindi se X non riesce ad uscire arrampicandosi sui più lunghi, allora tra quelli non più lunghi di X c’è uno che sicuramente non riesce ad uscire in senso assoluto. Tanto vale scartare quello più alto, che per lo meno abbasserà la profondità del pozzo.
Quindi se X non riesce ad uscire arrampicandosi sui più lunghi, allora tra quelli non più lunghi di X c'è uno che sicuramente non riesce ad uscire in senso assoluto.Come fai a dire che sicuramente uno non potrà uscire tra i più bassi di X? Metti caso che tutti i più bassi di X abbiano le braccia lunghissime e riescano ad uscire... (poi non capisco cosa vuol dire che tra i meno lunghi di X debba essere anche incluso X)Luke
Infatti la lunghezza l’ho definita come somma tra braccia e altezza. E facciamo pure che X va incluso tra i meno lunghi di X.
Lui dice che l’insieme C dei galli più corti di X è l’insieme di tutti i galli per cui H(i)+L(i) <= H(X)+L(X) quindi anche X fa parte dei suoi “sottoposti” (da quello che ho capito).
L’idea di considerare somma H+L è vincente!
Era leggermente diversa. (Mi riferisco a Vash)
1) Se X non riesce ad uscire allora prendo il più alto (non il più lungo!) tra quelli non più lunghi di X, e lo scarto a priori (decido che non uscirà mai).
2a) Ora se il più alto tra i non più lunghi di X era proprio X, allora scarto X e passo al gallo successivo ad X in ordine di lunghezza (quindi quello subito meno lungo).
2b) Se invece quello più alto non era X, allora se X ora riesce ad uscire, passo comunque al successivo (per lunghezza). Se invece X non riesce ancora ad uscire mi trovo nella stessa situazione di partenza e riprocedo con 1). Questo non vuol dire che voglio fare uscire X a tutti i costi. Infatti se X viene ad essere il più alto lo scarto comunque.
Sisisi intendevo il caso in cui X non sia il più alto tra quelli da sacrificare!
Prova, io non sono capace nemmeno ad ordinare un array in modo da avere gli indici anzichè le lunghezze.
Io la penso come te ma di dimostrarlo formalmente non ne sono in grado…
Mi sono accorto che non funziona, va sistemata.
Era leggermente diversa. (Mi riferisco a Vash)E se il gallo X riesce a uscire, lo includo nella soluzione ottima?
1) Se X non riesce ad uscire allora prendo il più alto (non il più lungo!) tra quelli non più lunghi di X, e lo scarto a priori (decido che non uscirà mai).
2a) Ora se il più alto tra i non più lunghi di X era proprio X, allora scarto X e passo al gallo successivo ad X in ordine di lunghezza (quindi quello subito meno lungo).
2b) Se invece quello più alto non era X, allora se X ora riesce ad uscire, passo comunque al successivo (per lunghezza). Se invece X non riesce ancora ad uscire mi trovo nella stessa situazione di partenza e riprocedo con 1). Questo non vuol dire che voglio fare uscire X a tutti i costi. Infatti se X viene ad essere il più alto lo scarto comunque.Luke