Oppure

Loading
11/03/10 21:15
netarrow
Comunque per le olimpiadi, non è tanto importante il fatto di sapere bene il linguaggi... ma di più conoscere vari algoritmi per risolvere i determinati problemi che ti chiede.


questo è vero sicuramente, ma se usi C++ hai le STL, ed è un bel vantaggio :)
aaa
11/03/10 23:19
pierotofy
L'unica cosa che ti aiuterà alle olimpiadi, come ha detto netarrow, è la STL (queues, lists, stacks, etc.). Suggerisco anche di impararti a memoria (non forniscono nemmeno una documentazione base delle librerie standard del linguaggio di scelta per queste competizioni, bha) l'uso della qsort (alle nazionali uno dei miei algoritmi richiedeva di ordinare una lista, peccato che decisi di implementare la cosa con un bubblesort che penalizzò terribilmente le performance del programma e di conseguenza il punteggio).

Per quanto riguarda il resto... io darei un'occhiata al knapsack problem e preferibilmente alla teoria dei grafi. Sono argomenti ricorrenti in questa competizione.

Se il tuo scopo è posizionarti bene alle olimpiadi, lascia perdere le classi... non le toccano nemmeno. In effetti è una competizione un po' balorda. Il veneto si classifica sempre prima regione in numero di partecipanti perchè i prof. passano più tempo a spiegare gli algoritmi che vengono poi presentati alla gara. Nelle altre regioni invece si fa la solita programmazione di base che non fornisce neanche minimamente le dovute nozioni. Dovrebbero chiamarle le olimpiadi italiane di algoritmica.

Dimenticavo... suggerisco vivamente la lettura di questo: cs.berkeley.edu/~vazirani/…

E' il più semplice e chiaro manuale di algoritmi che ho mai letto. Studiarlo ti darà sicuramente un buon vantaggio.
Ultima modifica effettuata da pierotofy 11/03/10 23:26
Il mio blog: piero.dev
12/03/10 15:01
Lawliet
Postato originariamente da netarrow:

questo è vero sicuramente, ma se usi C++ hai le STL, ed è un bel vantaggio :)


Può essere che hai ragione, però uno che partecipa alle fasi di IOI non ha mai il tempo di imparare tutto quelle cose... Già all'industriale (se non erro) imparano solo le basi del C++ mentre altre scuole usano C o Pascal o addiritura visual basic -_-'

Postato originariamente da pierotofy:
Dovrebbero chiamarle le olimpiadi italiane di algoritmica.


Infatti!! sono d'accordo con te.
ps. mi leggo anche io il libro che hai consigliato xD
aaa
12/03/10 18:53
netarrow
Può essere che hai ragione, però uno che partecipa alle fasi di IOI non ha mai il tempo di imparare tutto quelle cose... Già all'industriale (se non erro) imparano solo le basi del C++ mentre altre scuole usano C o Pascal o addiritura visual basic -_-'


o addirittura cobol :D

cmq se non sai a memoria le STL devi cmq sapere a memoria i soliti algoritmi di ordinamento, ricerca, alberi e varie strutture dati di base, che non è detto che fai a scuola.

le IOI sono molto nozionistiche, una cosa o l'altra devi saperla a memoria, poi su quelle cose costruisci un minimo di soluzione creativa, ma il grosso è ricordarsi pezzetti.

quindi meglio ricordarsi come usare una funzioncina e una struttura pronta, piuttosto che ricordarsi o ritirarsi fuori ogni volta le solite cose, per non parlare poi chi chi scegliere di usare il C che deve reinventarsi pure le stringhe.

poi non fraintendermi, studiare come sono fatte e come funzionano è doveroso ma poi finisce li, non è che devi recitare il codice ovviamente.

come competizione è un pò una contraddizione in termini visto che "studiare a memoria" e "olimpiadi di informatica" che sta per informazione automatica non torna molto.
Ultima modifica effettuata da netarrow 12/03/10 18:54
aaa