Come dovrei imparare gli algoritmi e risolvere i problemi su CodeChef, SPOJ passo dopo passo?
Non è necessario essere grandi matematici per essere bravi nella programmazione competitiva. Aiuterebbe, ma non è necessario. I'll run you quickly to jump start your ability to learn and master algorithms AND apply them to problems especially.
#1 Make sure to know your programming language really well (recommended is C++), even if it is Java or Python, know your syntax and built-in functions well.
#2 Read and understand algorithms. Non c'è bisogno di implementare subito. Assicuratevi di capire i passi dell'algoritmo, ogni singolo passo, in modo che se c'è un piccolo cambiamento nell'algoritmo, sarete in grado di capirlo immediatamente e sapere dove cambiare l'algoritmo per farlo funzionare. Raccomanderei di scrivere i passi su un pezzo di carta ed essere il computer e fare l'algoritmo a mano.
#3 Implementare. Preparate un codice funzionante e fate il debug se necessario. Dovreste essere in grado di guardare il vostro pezzo di carta e codificare l'algoritmo abbastanza semplicemente. Se ti blocchi, potresti aver frainteso l'algoritmo (torna al passo 2) o consultare uno pseudocodice (su Wikipedia o GeeksforGeeks).
#4 Pratica, pratica, pratica. E' tempo di applicare le tue abilità di algoritmo a problemi reali (CodeForces, CodeChef, SPOJ, ecc.). SPOJ ha un bel sistema di ordinamento. Ecco un buon link da CodeChef: Data Structures and Algorithms. Questo ha un sacco di algoritmi elencati con tutorial/problemi/implementazioni.
Infine, amate ciò che fate; imparerete le cose più velocemente.
Articoli simili
- Quali sono alcuni buoni problemi che usano la programmazione dinamica su Topcoder, Codeforces, Codechef e SPOJ?
- Quali sono i 10 algoritmi che si devono conoscere per risolvere la maggior parte dei problemi di algoritmi?
- Come costruire un'applicazione di messaggistica passo dopo passo per Android
- Qual è un processo passo dopo passo per ottenere 1000 download sul mio gioco Android?