BCC - Bacharelado em Ciências da Computação
1º Semestre - 2020
ICMC - USP - São Carlos
João do E.S. Batista Neto - jbatista *** icmc usp br (SALA 4-222)
Monitoria : Fábio Felix (f_diasfabio at usp br) e Raphael Medeiros (raphael.medeiros.vieira at usp br)
horário atendimento: Qq horário (envie email para marcar, se preferir)
CÓDIGO PARA ACESSO NO RUN.CODES >>>>> YJ3K <<<<<
Aprofundar conhecimentos em paradigmas de programação vistos nos cursos básicos de estrutura de dados e programação.
Aprender novas estratégias para resolução de problemas, em especial soluções em grafos, busca em strings, programação
dinâmica, etc.
Resolver exercícios com estrada/saídas bem restritivas, no formato de problemas existentes em competições de
programação.
- Entrada e Saída
- STL em c++: principais containers (pilhas, filas), estruturas de dados e algoritmos já prontos em C++
- Paradigmas para construção de algoritmos
- Força Bruta, Algoritmos gulosos
- Backtracking, Programação Dinâmica
- Tópicos de programação normalmente não vistos nas disciplinas de graduação
- Fluxo em redes (grafos avançados)
- Teoria dos números, big integers, teoria dos jogos, etc (matemática)
- Processamento de strings
- Manipulação de pontos, linhas, polígonos (geometria computacional)
- Foco na resolução de problemas e treinamento para competições
- Run Codes
- Online judges
- Trabalho em grupo
[Índice]
[Índice]
Aula 1
E/S aqui
Como ler quantidade variável de inteiros por linha aqui
Sítios importantes para consulta
- Ferramentas Automáticas, online para submissão de exercícios e Contests!!
- Exercícios semanais (CODIGO=YJ3K) run.codes
- O que usaremos para simulado (muito provavelmente) VJUDGE
- Online Judges - Outros sites interessantes
- CodeForces: mostra o caso de teste errado e tem contests frequentemente aqui
- LiveArquive: tem problemas de regionais e mundiais.
aqui
- CodeChef: tem contests com fequencia aqui
- SPOJ aqui
- SPOJ (2) aqui
- Timus aqui
- Uva aqui
- Uva (2) aqui
Aula 2
STL - Standard Template Library - STL - Parte 1
Vectors - Maps - Deques - Filas - Pilhas
Material aqui
Sítio para consulta aqui
Aula 3
STL - Standard Template Library - STL - Parte 2
Filas de prioridade, conjuntos e algoritmos....
Material aqui
Um exemplo de como fila de prioridade pode ser usado para incrementar Dijkstra por exemplo
Aula 4
BackTracking - parte 1
Material aqui
Material auxiliar 1 aqui
Material auxiliar 2 aqui
Um pouco de análise combinatória
aqui
Aula 5
BackTracking - parte 2
Material aqui
Material 2 aqui
Um site interessante sobre A*
Codigo exemplo dos slides versao sem A*
Codigo exemplo dos slides versao com A*
8-puzzle: um pequeno tutorial
PARA CORRECAO EXER 2 (Aula4) aqui...
Aula 6
Teoria Dos Numeros
Material parte 1
Material parte 2
Codigo exemplo dos slides primos
Codigo exemplo dos slides fatores primos
Aula 7
Material Busca Binaria
Código fonte - método bissecção aqui
Aula 8
Programação Dinâmica
Parte 1 aqui
Aula grava (parte 1)
PD
Um pouco de teoria aqui
Aula grava (parte 2)
PD
COdigo feito em sala aqui
Aula gravada (parte 3) PD
Aula 8
Grafos
Parte 1 (Árvores Geradoras e Caminho mínimo) aqui
Código visto em aula aqui
Aula gravada (parte 1) Grafos (caminho mínimo
- Dijkstra, Mellman-Ford, Floyd-Warshal
[Índice]
Percentual de exercícios resolvidos no run codes e simulados
[Índice]
[Índice]
Felix Halim. Competitive Programming 3
Cormen. Introduction to Algorithms
Skiena. The algorithm Design Manual
Anany Levitin. The Design and Analysis of Algorithms
[Índice]