Como Estudar para Maratona de Programação?
Para formar uma equipe competitiva na Maratona de Programação você precisa se dedicar bastante e de forma eficiente. Para isso, você precisa aprender os conteúdos mais recorrentes e fazer bastantes questões. Irei recomendar alguns sites para estudar conteúdos e outros sites para praticar.
Onde Aprender Conteúdos Novos?
Abaixo, irei listar alguns sites para aprender conteúdos de acordo com seu nível em programação competitiva.
Treino Iniciante
Em seu primeiro contato com a maratona de programação, recomendo um treino mais conteudista. Para isso podemos aproveitar os cursos da plataforma Neps Academy. Nessa plataforma você terá uma boa base para começar na maratona.
- Introdução: https://neps.academy/br/course/6
- Matemática computacional: https://neps.academy/br/course/9
- Técnicas de programação: https://neps.academy/br/course/7
- Algoritmos em grafos: https://neps.academy/br/course/8
- Estrutura de dados: https://neps.academy/br/course/10
A minha dica é finalizar o curso de introdução e depois ficar intercalando entre os demais cursos. Acredito que seja mais fácil assim, pois os cursos vão ficando difíceis.
Além do Neps Academy temos outras opções bastante boas:
- Curso NOIC: https://noic.com.br/materiais-informatica/curso/
- Code Monk: https://www.hackerearth.com/practice/codemonk/
- Code Marathon: https://www.codemarathon.com.br
- Marathon USP: https://www.youtube.com/channel/UCB_SQAulqgmQ0Vfww9wzfWA
- (Curso Completo em C++) + (Algoritmos Famosos): https://www.youtube.com/watch?v=p2RsIed0hnA&list=PL8eBmR3QtPL13Dkn5eEfmG9TmzPpTp0cV
- PlayList sobre Programação Dinâmica: https://www.youtube.com/watch?v=ypsVpY9bis8&list=PL4Z4KvihWKj-1m8GhroJqu9K2GltqNUvX
- Maratona UFMG: https://www.youtube.com/channel/UCWNq1dCrk4eJFZEDQhrvTbg
Treino Médio
Após fortalecer a base com os conteúdos acima, você precisa aumentar o seu background de assuntos. Para isso, você pode utilizar os seguintes sites:
- CP-Algorithm : https://cp-algorithms.com/ tem a versão em português, mas não sei como ficou a tradução: https://cp-algorithms-brasil.com/
- Competitive Programmer's Handbook: https://cses.fi/book/book.pdf
- Aprender novas técnicas no NOIC: https://noic.com.br/materiais-informatica/ideias/
- Resolver questões e aprender novas abordagens: https://noic.com.br/materiais-informatica/problemas-da-semana/
- Livro "Competitive Programming 3" ou as duas versões do “Competitive Programming 4”.
- Livro "Guide to Competitive Programming" (Antti Laaksonen).
- GEMA ICMC: https://www.youtube.com/channel/UCv051Zppxw4k11h3qlHxpGg
- Canal Bruno Monteiro: https://www.youtube.com/channel/UCvckjlJuhIL7SoJTwDCbD8w/videos
Treino Avançado
Para se tornar ainda mais competitivo, você precisa ir mais além nos conteúdos. Abaixo temos algumas opções:
- Blog do CodeForces: https://codeforces.com/blog/entry/57282
- Emaxx: http://e-maxx.ru/algo/
- Pesquisar no Google conforme a demanda.
Onde Praticar?
Além de aprender conteúdos novos, é importantíssimo praticar esses assuntos. Então irei listar algumas plataformas para esse propósito:
- Neps Academy: https://neps.academy/problems
- CSES: https://cses.fi/problemset/list/
- URI: https://www.urionlinejudge.com.br/judge/pt/categories
- Codechef: https://www.codechef.com/contests
- Codeforce: https://codeforces.com/contests
- Atcoder: https://atcoder.jp/contests/
- UVA (Melhor usar o vjude para submeter): https://vjudge.net/
É importante ressaltar que a qualidade das questões é mais importante que a quantidade. Não adianta nada fazer 2 mil questões fáceis se você não souber fazer as questões médias e difíceis.
Participe da Comunidade Brasileira
Apesar de ter bastante material sempre vai surgir dúvidas. Para isso, existem dois grupos excelentes com várias pessoas experientes e que já participaram da mundial do ICPC que podem te ajudar.