Ciao a tutti, sono nuovo qui nel forum ma credo di aver azzeccato la sezione giusta.
Mi scuso in anticipo se ho scritto un poema ma ho veramente bisogno di aiuto.
------------------------------------ PARTE 1 ----------------------------------------------
Quest'anno sono in terza superiore e abbiamo cominciato a programmare in C (cosa che mi interessa molto), siccome già dall'anno scorso conoscevo le basi della programmazione, ho deciso di iscrivermi alle Olimpiadi Italiane di Informatica e sono arrivato 4° nella mia scuola classificandomi così alla prova territoriale
Di conseguenza sto cercando di esercitarmi sul sito di allenamento ufficiale (), il problema è che non riesco a fare quasi nessun programma, riesco a fare solo quelli più semplici (quasi banali)
Detto ciò immagino che ci siano determinati algoritmi che vanno usati per risolvere determinati problemi, sapete dirmi secondo voi quali sono quelli che dovrei conoscere in vista delle OII? Magari riuscite anche a darmi un link dove posso trovare vari problemi già risolti per capire quale algoritmo è stato usato per risolvere il problema?
--------------------------------------- PARTE 2 ----------------------------------------------------
Oggi sto provando a risolvere un problema sempre sul sito di allenamento che secondo me dovrebbe essere abbastanza semplice per uno che deve fare le OII, ma come al solito non so come fare.
Il problema lo potete trovare qui:
Prendendo quindi in esame quel problema, per risolverlo l'unica idea che mi è passata per la testa è stata: "Devo far testare al programma tutte le combinazioni di trampolini e poi confrontare tutte le combinazioni che hanno portato l'atleta a cadere sul materasso per cercare quella che impiega il minor numero di salti.".
Il problema è che non credo sia giusto poichè penso che l'esecuzione fonderebbe la CPU nel tentare tutte le combinazioni possibili visto che possono esserci fino a 100 000 trampolini...
E poi non saprei come implementare in C un algoritmo che prova tutte le combinazioni dei trampolini.
Detto ciò non vi sto chiedendo di risolvermi il problema scrivendomi il codice già completo, ma vi sto chiedendo:
1) Esiste (immagino di si) un modo migliore di quello a cui avevo pensato io per risolvere il problema? Se si quale?
2) Esiste un algoritmo specifico per un problema del genere (magari riadattando leggermente l'algoritmo)?
Riguardo alle due domande precedenti, sarebbe bello se mi riusciste a fornire uno pseudo-codice, così potrei provare a "tradurlo" in C.
Grazie in anticipo