Competitive Programming Guide
Sobre este Competitive Programming Guide
Todos os algoritmos de programação competitivos, truques e estruturas de dados com exemplos
O CP Handbook é o único local para todos os amantes de programação competitiva, pois contém todos os algoritmos e estruturas de dados. Além disso, todo tópico contém exemplos e problemas não resolvidos para a prática.
Programação competitiva é um esporte, quero dizer literalmente. Pratique qualquer esporte, vamos considerar o críquete, você entra no taco pela primeira vez. Balance e erre, faça isso algumas vezes e você acabará atingindo um deles. Agora, considere um concurso de programação como um jogo de críquete, metaforicamente. Compile um código e envie-o, você pode obter uma WA (Resposta errada).
Faça as alterações no código e, eventualmente, você receberá sua primeira CA (resposta aceita / correta). Deixe-me dar uma espiada, cerca de 20% das perguntas em um concurso de programação são simples conversão de inglês simples para um código da sua linguagem de programação favorita.
Vá direto para ele, você aprenderá as regras não escritas do jogo à medida que joga mais e melhora.
E acredite, você não precisa conhecer nenhum algoritmo de "nome sofisticado" ou estrutura de dados para começar. Já ouviu falar de "Waft shot", mas você é o melhor batedor da sua rua, certo?
Tudo bem, vamos conquistar os primeiros 20% dos problemas de programação por aí.
Você precisa saber:
Espera intermediária em qualquer linguagem de programação
Inglês! Converter inglês em código!
Vamos dar um exemplo de problema deste nível: Terrível Chandu
Tudo o que você precisa fazer é ler a linha de entrada de STDIN e imprimir o verso dessa linha em STDOUT. Vá em frente, faça um envio. Procure seu primeiro AC. Quer mais? Temos muitas cargas em nossa seção de prática. Procure aqueles com milhares de envios corretos.
Ok, agora você está pronto para enfrentar um desafio real. Segure firme, estamos mergulhando mais fundo.
Você precisa saber:
1. Algoritmos de classificação e pesquisa
2. Hashing
3. Teoria dos Números
4. Técnica gananciosa
Mais importante, você precisa descobrir o que, quando e onde aplicá-los. Fica realmente complicado e, portanto, para ajudar os iniciantes a ganhar uma sensação de confiança, realizamos uma série de concursos como o Code Monk. Antes de cada concurso, lançamos um tutorial sobre determinado tópico e, posteriormente, os problemas são direcionados apenas para esse tópico específico. Eu recomendo que você siga os tutoriais e resolva uma ou duas perguntas sobre cada tópico.
Até agora você já percebeu que as perguntas foram elaboradas para enganar a maneira como pensamos. Às vezes, se você converter o inglês simples em código, terá o veredicto TLE (tempo limite excedido). Você precisa aprender um conjunto de novas técnicas e algoritmos para lidar com os prazos. Em certos casos, a programação dinâmica (DP) vem em socorro. De fato, você já deve ter usado intuitivamente essa técnica. Sempre há pelo menos uma pergunta em qualquer concurso que pode ser resolvida pelo DP.
Além disso, você notou que existem perguntas que não podem ser resolvidas por estruturas de dados de matriz linear.
1. Teoria dos grafos
2. União do conjunto disjuntor (localização da União)
3. Árvore de abrangência mínima
Esse conjunto de estruturas de dados o levará bastante longe. Além disso, você imaginou que a verdadeira arte é modificar as técnicas que você conhece para resolver uma pergunta. Todas as questões de nível Fácil-Médio e Médio podem ser abordadas dessa maneira.
Você está pronto para liderar as tabelas de classificação dos Desafios Curtos de Programação, apenas mantenha uma persistência constante. Como já mencionei, é um esporte, você não vai dominá-lo até praticá-lo. Vá em frente, participe de uma competição curta, conheça seus pontos fortes e fracos e veja como você lida com o modo adrenalina quando o tempo está passando.
Atenha-se à sua própria lógica o máximo de tempo possível; você encontrará algo semelhante ao algoritmo necessário para resolver a questão. Você só precisa retocar. Várias dessas técnicas ajudarão você a resolver alguns dos problemas mais difíceis.
1. Árvore de segmentos
2. Algoritmos de String
3. Tenta, árvore de sufixo, matriz de sufixo.
4. Decomposição Leve Pesada
5. Coloração de gráfico, fluxo de rede
6. Decomposição Quadrada.
Portanto, faça o download deste manual da CP e divirta-se aprendendo coisas novas. Não se esqueça de codificá-las com menos complexidade de tempo.
Novidades em 2.5.0 mais recente
Informações sobre Competitive Programming Guide APK
Versões Antigas de Competitive Programming Guide
Competitive Programming Guide 2.5.0
Competitive Programming Guide 2.0
Baixar de Forma Rápida e Segura via APKPure App
Um clique para instalar arquivos XAPK/APK no Android!