Professor: Rodrigo de Barros Paes
pa-ic@googlegroups.com
Solicite a sua inscrição em: https://groups.google.com/d/forum/pa-ic
Se você é aluno de Engenharia da Computação ou Ciência da Computação da UFAL, procure as disciplinas de Programação Avançada.
As ementas que existem hoje são:
Checklist de assuntos
Estude os tópicos abaixo:
- Nível 1:
- Saber usar direito a biblioteca padrão
- Busca Binária
- Busca Ternária
- DFS/BFS
- Bicoloração em grafos
- Dijkstra, Bellman-Ford, Floyd-Warshall
- PD bottom-up/top-down
- Exponenciação rápida
- Segment Tree
- Fenwick Tree
- Matemática básica (combinatória básica, gcd, lcm, etc)
- Nível 2:
- Fluxo em grafos (ford-fulkerson)
- Entender a relação entre minimo corte e máximo fluxo
- Relações recursivas lineares com matriz (por exemplo: Fibonacci ou caminhos de tamanho k num grafo dirigido de 1 até n)
- SQRT decomposition com "buckets"
- Algoritmo de Mo (entra em SQRT)
- PD em árvore
- Merge sort tree
- Inclusão-exclusão
- Crivo e derivados (coisas que usam a série harmônica)
- Geometria básica
- Distância entre pontos, distância entre retas, convex-hull (olhar a parte de geometria do CP3)
- Nível 3:
- Line sweep
- Decomposição em centroide de árvore
- 2-sat
- FFT/NTT
- Otimização de pd
- Segment tree 2d
- Tópicos de matemática mais avançada do CP3
No roteiro da UFMG, eles sugerem vários problemas para os tópicos acima. Use para praticar: http://wiki.maratona.dcc.ufmg.br/index.php/Roteiros
- Veteranos
- Novatos
- Faça os contests do codeforces e tente ir subindo no ranking. Mire a categoria imediatamente acima, depois a próxima, a próxima ... até chegar na vermelha.
- https://www.ime.usp.br/~maratona/acampimento-2016
- Quanto estiver no nível 3, treine com os problemas das finais da maratona:
- Problemas da Final Brasileira da Maratona de Programação 2015:
Aprenda com as soluções de seus colegas e contribua com a sua solução: https://github.com/r0drigopaes/maratonaic