Programação competitiva incrível
Uma lista com curadoria de recursos impressionantes Competitive Programming , Algorithm e Data Structure .
Criado com o objetivo de conectar as pessoas à informação, esta lista abaixo contém uma coleção completa de todos os recursos fantásticos que coletei ao longo da minha carreira de programação competitiva de 11 anos. Espero que você ache útil :)
O que é programação competitiva? - Quora
Contribuindo
Por favor, siga por favor contribuindo.md para começar.
Você também pode contribuir compartilhando!
Compartilhe a lista com seus colegas de classe, seus amigos e todos :)
Conectando mais pessoas à informação,
Você, não está me fazendo, mas todos um grande favor!
Eu realmente espero que mais pessoas possam se beneficiar desta lista :)
Índice
- Lista de listas
- Programas programáticos
- Sites tutoriais
- Cursos abertos
- Cursos abertos para algoritmos e estruturas de dados
- Livros
- Livros para algoritmos | Livros para matemática
- Sites para prática
- Classificadores de Problemas | Calendários do concurso
- Acampamentos e treinamentos
- Sites para perguntas
- Implementações
- Especificidades de idioma
- Ferramentas
- Ides | Uso pessoal | Preparação do concurso
- Comunidade
- Blogs | YouTube e transmissão ao vivo | Quora
- Outros recursos impressionantes
- Artigos | Perguntas frequentes | Listas incríveis | Perguntas da entrevista
- Licença
Lista de listas
Listas incríveis com curadoria classificadas por tópicos.
| ☆ | Nome | Descrição |
|---|
| ★★★ | Boa posta | Uma coleção de postagens de blog de tutoriais fantásticos escritos por usuários do Codeforces. Alguns intrigantes incluem árvores palindrômicas, estruturas de dados baseadas em políticas e muito mais. |
| ★★★ | Todos os bons tutoriais encontrados nas forças de código - Codeforces | Outra boa coleção de postagens de blog tutoriais escritas por usuários do Codeforces. |
| ★★★ | Estruturas e algoritmos de dados - Codechef Discuta | Uma lista muito completa de recursos de programação competitiva. Um item obrigatório no seu marcador de navegador. |
| ★★★ | Como se preparar para o ACM - ICPC? - Geeksforgeeks | Uma apresentação detalhada dos preparativos para o ACM-ICPC. |
Programas programáticos
Descubra quais tópicos você precisa aprender.
| ☆ | Nome | Descrição |
|---|
| ★★★ | Syllabus ioi | Um plano de estudos detalhado nos quais os participantes da IOI serão testados. Isso ainda é um pouco relevante para o ACM-ICPC. |
| ★★★ | Como se preparar para o ACM - ICPC? - Geeksforgeeks | Uma apresentação detalhada dos preparativos para o ACM-ICPC. |
| ★★ ☆ | Programação Syllabus do acampamento | Uma lista de tópicos importantes na programação competitiva com problemas de exercício. |
| ★★ ☆ | Folha de treinamento dos juniores, de Mostafa Saad Ibrahim | ~ 800 problemas ordenados para que os recém-chegados sejam bons até o div2-d |
Sites tutoriais
Sites incríveis com ótimos tutoriais.
| ☆ | Nome | Descrição |
|---|
| ★★★ | Tutoriais de ciência de dados TopCoder | Uma lista de tutoriais escritos por membros respeitados do TopCoder. Muitos programadores principais começaram a aprender ciências dos dados daqui. |
| ★★★ | E-maxx (russo), (inglês) | Um site tutorial amplamente usado e referenciado na comunidade de programação competitiva de língua russa. A maioria dos artigos do site original foi traduzida para o inglês, o Google Translate funciona bem para os restantes. |
| ★★ ☆ | Algoritmos - Geeksforgeeks | Um site com um grande arquivo de artigos bem escritos sobre tópicos diferentes. É um ótimo recurso de cortesia para cursos de algoritmo. |
| ★★ ☆ | Pegwiki | Um site com incríveis redação de wiki em muitos tópicos. É muito melhor do que os da Wikipedia na minha opinião. |
| ★★ ☆ | Notas - Hackerearth | Uma ótima plataforma de crowdsourcing para tutoriais. Visite também o código Monk. |
| ★★ ☆ | USA Computing Olympiad (USACO) | Contém várias páginas de treinamento em seu site, projetadas para desenvolver suas habilidades em soluções de programação para problemas algorítmicos difíceis e variados no próprio ritmo. |
| ★★ ☆ | Basecs | Um blog com tutoriais ilustrados e detalhados sobre algoritmos básicos e estruturas de dados. |
| ★★ ☆ | Programação competitiva - Commonlounge | Tutoriais em vídeo curtos para conceitos iniciantes e intermediários. Tutoriais avançados selecionados entre os melhores disponíveis em vários blogs de CP. |
| ★ ☆☆ | Olimpíadas em informática | Uma revista internacional se concentrou na pesquisa e prática de profissionais que estão trabalhando no campo de ensino e aprendizagem de informática a estudantes talentosos. |
| ★ ☆☆ | Algolista (russo) | Um site russo dedicado a algoritmos de todos os tipos. Alguns tópicos listados neste site parecem bastante interessantes. |
| ★★ ☆ | 演算法筆記 (Notas de algoritmo) (chinês) | Um dos sites de tutoriais mais populares entre a comunidade de programação competitiva de Taiwan. O mantenedor deste site gasta imensos esforços na pesquisa de algoritmos. |
| ★★ ☆ | 国家集训队论文 1999-2015 (Documentos de campos de treinamento em IOI chineses) (chinês) | Documentos dos campos de treinamento chineses de IOI. É interessante o fato de que se pode dizer que diferentes regiões enfatizam coisas diferentes. |
| ★★★ | Mini-editoriais, de Mostafa Saad Ibrahim Trainees | Soluções com mini-editoriais para muitos problemas, incluindo problemas UVA/Spoj/ioi/Olympiad |
| ★★ ☆ | Oi wiki (programação competitiva) (chinês) | O Oi Wiki está comprometido em ser um site de integração de conhecimento gratuito e aberto de programação atualizado (Programação Competitiva). Este wiki é uma espécie de companheiro ou guia para o programador competitivo que está tentando aprender algo |
Cursos abertos
Considere iniciar sua jornada de programação competitiva com esses cursos incríveis!
| ☆ | Nome | Descrição |
|---|
| ★★ ☆ | Código monge, por hackerearth | Um fantástico tutorial passo a passo sobre os tópicos essenciais em programação competitiva. |
| ★★★ | Stanford CS 97SI: Introdução a concursos de programação competitiva | Oferece slides abrangentes de palestras e uma pequena lista de problemas de exercício. |
| ★★ ☆ | Como ganhar competições de codificação: segredos de campeões | Um curso da ITMO University sobre codificação competitiva no EDX. |
| ★★ ☆ | Campo de programação indiano de Codechef | Palestras em vídeo do campo de programação indiano de Codechef 2016. Palestras fornecidas por principais programadores competitivos como Sergey Kulik, Kevin Charles Atienza e Anudeep Nekkanti. Focou -se principalmente em explorar esses conceitos, aplicando -os a problemas competitivos reais do concurso. |
| ★★ ☆ | Reykjavik T-414-áflv: um curso de programação competitivo | Um curso incrível ministrado por Bjarki Ágúst Guðmundsson (suprdewd). Essas palestras apresentam slides limpos e uma boa lista de problemas para praticar. |
| ★★ ☆ | NCTU DCP4631: Técnicas de resolução e programação de problemas | Um curso sobre tópicos básicos com bons slides de palestras. |
| ★ ☆☆ | Materiais (inglês) da programação competitiva em árabe canal no youtube | Alguns materiais (slides e códigos de origem), cobrindo uma ampla gama de tópicos algorítmicos de Mostafa Saad Ibrahim. |
Cursos abertos para algoritmos e estruturas de dados
| ☆ | Nome | Descrição |
|---|
| ★★★ | Prakhar1989/Awesome-Courses#Algoritmos | Uma lista fantástica de cursos abertos oferecidos por instituições notáveis (MIT, Stanford, UC Berkeley ... etc.). |
| ★★★ | MIT SMA 5503: Introdução aos algoritmos | Lecturadas pelo Prof. Charles Leiserson (um dos co -autores da introdução aos algoritmos) e pelo Prof. Erik Demaine (um professor brilhante que fez avanços notáveis na ciência de dados), o curso oferece ótimos materiais, acompanhados por análises intuitivas e abrangentes. |
| ★★ ☆ | Curso de algoritmo da UIUC | Notas de aula, trabalhos de casa, exames e problemas de discussão, cobrindo uma ampla gama de tópicos algorítmicos |
Livros
Uma lista de livros recomendados para programação competitiva.
| ☆ | Nome | Descrição |
|---|
| ★★ ☆ | Programação competitiva, de Steven e Felix Halim | Este livro contém uma coleção de estruturas de dados relevantes, algoritmos e dicas de programação. É um livro bem recebido. ... A primeira edição é gratuita para download (PDF). |
| ★★ ☆ | Desafios de programação: o Manual de Treinamento do Concurso de Programação, de Steven Skiena e Miguel Revilla | Este livro inclui mais de 100 desafios de programação, bem como a teoria e os conceitos -chave necessários para abordá -los. Os problemas são organizados por tópico e complementados por material tutorial completo. |
| ★★ ☆ | Manual do Programador Competitivo, de Antti Laaksonen | Uma introdução à programação competitiva para aspirantes a concorrentes da IOI e do ICPC. Grátis para baixar (pdf). |
| ★★ ☆ | Pensamento algorítmico: uma introdução baseada em problemas, de Daniel Zingaro | Um livro que ensina estruturas de dados e algoritmos usando problemas de programação competitiva (IOI, USACO, CCC/CCO, etc.). |
| ★★ ☆ | Geometria computacional: algoritmos e aplicações, por Mark de Berg, Otfried Cheong, Marc van Kreveld, Mark Overmars | Este é um livro bem escrito que abrange uma ampla gama de problemas de geometria computacional. |
| ★ ☆☆ | O guia do carona para os concursos de programação, de Nite Nimajneb | Este livro é gratuito para download (PDF). Este livro abrange vários tópicos relevantes para a programação competitiva. |
| ★★★ | プログラミングコンテストチャレンジブック (japonês), por 秋葉拓哉, 岩田陽一, 北川宜稔 北川宜稔 | Um livro absolutamente fenomenal. O conteúdo, organizado de uma maneira muito coerente, não é incrível. ... 培養與鍛鍊程式設計的邏輯腦 : 世界級程式設計大賽的知識、心得與解題分享 (tradicional chinês) |
| ★★ ☆ | 算法竞赛入门经典 (chinês), por 刘汝佳 | A arte dos algoritmos e concursos de programação (inglês), 打下好基礎 : 程式設計與演算法競賽入門經典 (tradicional chinês) |
| ★★ ☆ | 算法竞赛入门经典 —— 训练指南 (chinês), por 刘汝佳, 陈锋 | 提升程式設計的解題思考力 ─ 國際演算法程式設計競賽訓練指南 (tradicional chinês) |
| ★★★ | 算法艺术与信息学竞赛 (chinês), por 刘汝佳, 黄亮 | Um clássico dos velhos tempos. É antigo, mas o conteúdo deste livro ainda é considerado muito difícil pelos padrões de hoje. |
Livros para algoritmos
| ☆ | Nome | Descrição |
|---|
| ★★★ | Introdução aos algoritmos, por Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest e Clifford Stein | Também conhecido como CLRS (retirado das iniciais do nome), este livro é frequentemente chamado de "Bíblia" para algoritmos e estruturas de dados. É um dos livros didáticos mais populares para os cursos de algoritmo universitário. Este livro cobriu vários algoritmos e estruturas de dados em detalhes. A escrita é mais rigorosa e pode ser difícil para alguns. |
| ★★ ☆ | Design de algoritmo, de Jon Kleinberg e Éva Tardos | Este livro gira em torno de técnicas para projetar algoritmos. É bem organizado e escrito em uma linguagem clara e compreensível. Cada capítulo é apoiado com exemplos práticos e exercícios úteis. O capítulo sobre fluxo de rede é altamente elogiado por lotes. ... Os slides da palestra que acompanham o livro estão disponíveis em seu site oficial. |
| ★★ ☆ | O manual de design do algoritmo, de Steven S. Skiena | O livro está escrito em texto mais legível. Alguns acham abrangente do que outros livros. Você também pode encontrar alguns bons recursos (incluindo as próprias palestras em vídeo do autor) em seu site oficial. |
| ★★★ | Algoritmos, de Robert Sedgewick e Kevin Wayne | Este livro é categorizado bem, juntamente com explicações elaboradas e ilustrações fantásticas. É usado em alguns campos de treinamento da IOI como livro. |
| Algoritmos avançados e estruturas de dados, de Marcello La Rocca | Este livro fornece uma abordagem diferente para os algoritmos, equilibrando a teoria com um ângulo mais prático, com uma seção por capítulo focada em como aplicar algoritmos a casos de uso do mundo real que podem ser encontrados em seu trabalho diário ou em programação competitiva; Ele também apresenta uma mistura de algoritmos clássicos, avançados e novos. |
| ★★★ | Algoritmos, de Jeff Erickson | Uma versão eletrônica gratuita de um livro publicado auto-publicado licenciado no CC por 4.0. Este é um livro bem escrito das notas de aula dos cursos teóricos de ciência da computação na Universidade de Illinois. Abrange os principais paradigmas de retrocesso, programação dinâmica, gananciosa e particularmente gráficos em profundidade. |
| Estruturas de dados de Grokking, de Marcello La Rocca | As estruturas de dados Grokking o guia cuidadosamente das estruturas de dados mais básicas, como matrizes ou listas vinculadas até estruturas poderosas como gráficos. É perfeito para iniciantes, e você não precisará de nada além de matemática do ensino médio para começar. Cada estrutura de dados que você encontra vem com sua própria implementação completa do Python, para que você possa começar a experimentar o que aprende imediatamente. |
Livros para matemática
| ☆ | Nome | Descrição |
|---|
| ★★ ☆ | Matemática discreta e suas aplicações, de Kenneth H. Rosen | A matemática discreta é intimamente relevante para a programação competitiva. Este livro fornece materiais abrangentes sobre uma ampla gama de tópicos, incluindo: lógicas e provas, conjuntos, funções, sequências, matrizes, teoria dos números, recursão, contagem, probabilidade, gráficos, árvores e alégra booleanos para citar apenas alguns. |
| ★★ ☆ | Matemática de Concreto: Uma Fundação para Ciência da Computação, de Ronald L. Graham, Donald E. Knuth, Oren Patashnik | O livro oferece uma visão mais profunda da matemática discreta, com mais ênfases em tópicos relacionados a números. |
| ★★ ☆ | Álgebra linear e suas aplicações, de David C. Lay, Steven R. Lay, Judi J. McDonald | O livro faz um trabalho brilhante em preencher a lacuna entre um sistema físico (para cientistas e engenheiros) e um sistema abstrato (para matemáticos). |
| ★★ ☆ | Introdução à probabilidade, por Charles M. Grinstead, J. Laurie Snell | Este é um livro de probabilidades introdutórias bem escritas. ... É gratuito para download (PDF) (lançado na Licença de documentação gratuita da GNU). |
| ★★ ☆ | Como resolvê -lo: um novo aspecto do método matemático, por G. polya | Um clássico dos velhos tempos. Neste livro, o autor fornece uma maneira sistemática de resolver problemas de forma criativa. |
| ★★ ☆ | Contagem e probabilidade intermediárias, por David Patrick | Os tópicos em contagem e probabilidade pelo formador dos EUA, vencedor da Olimpíada Matemática, David Patrick, os tópicos incluem a exclusão de inclusão, correspondências 1-1, o princípio do pombo, expectativa construtiva, fibonacci e números catalães, recursão, probabilidade condicional, geração de funções, teoria dos grafos e muito mais .. |
Sites para prática
Bons Sistemas de Juiz Online / Plataformas de Concurso para Praticar.
| ☆ | Nome | Descrição |
|---|
| ★★★ | Codeforces | O Codeforces é uma das plataformas de concursos mais populares por aí. Atualmente mantido pela Universidade Estadual de Saratov, apresenta concursos regulares e inúmeros problemas originais impressionantes. Além disso, todo concurso fornece tutoriais úteis imediatos (geralmente) escritos pelos próprios autores. A Codeforces também abriga uma comunidade forte e envolvente. Em suma, alguém realmente aprenderia e melhoraria tremendamente aqui. |
| ★★★ | Topcoder | O TopCoder existe desde 2001. Rico em história, é considerado uma das organizações de maior prestígio quando se trata de competições de tecnologia. Centenas de SRMs deram à luz um abundante conjunto de problemas. Os problemas aqui são tipicamente mais desafiadores do que outros e, portanto, o Topcoder apela a muitos programadores de elite. O Topcoder Open anual (TCO) também é um evento amplamente discutido. |
| ★★★ | Google Code Jam | O Google Code Jam é certamente uma das competições de programação mais altamente estimadas. A competição consiste em desafios exclusivos de programação que devem ser resolvidos em um período fixo de tempo. Os concorrentes podem usar qualquer linguagem de programação e ambiente de desenvolvimento para obter suas soluções. |
| ★★★ | Atcoder | A Atcoder é uma plataforma nova, mas fenomenal, criada por uma equipe de programadores competitivos japoneses altamente cotados. |
| ★★ ☆ | Codechef | Codechef é uma iniciativa educacional sem fins lucrativos da Directi. É uma plataforma de programação competitiva global e possui uma grande comunidade de programadores que ajuda estudantes e profissionais a testar e melhorar suas habilidades de codificação. Seu objetivo é fornecer uma plataforma para prática, concorrência e melhoria para estudantes e desenvolvedores de software profissional. Além disso, ele pretende alcançar os alunos enquanto eles são jovens e inculcam uma cultura de programação na Índia. |
| ★★★ | Spoj | A plataforma SPOJ está centrada em um sistema de juízes on -line. Ele mantém uma quantidade impressionante de problemas preparados por sua comunidade de setters de problemas ou retirados de concursos de programação anteriores, alguns dos quais são ótimos problemas para a prática (consulte a seção Classificadores de Problemas). A SPOJ também permite que usuários avançados organizem concursos sob suas próprias regras. |
| ★★ ☆ | Timus | O juiz on -line de Timus é o maior arquivo russo de problemas de programação com o sistema de julgamento automático. Os problemas são coletados principalmente em concursos realizados na Universidade Federal Ural, no Campeonato Ural, nos concursos sub -regionais da Ural ACM ICPC e nos campos de treinamento de Petrozavodsk. |
| ★ ☆☆ | HDU | A HDU é um juiz on -line mantido pela Universidade Hangzhou Dianzi. É o lar de muitos problemas clássicos da cena chinesa de IOI. |
| ★★ ☆ | Juiz online da AIZU | O juiz on -line da AIZU é uma plataforma de concurso e um arquivo de problemas hospedado pela Universidade de AIZU. Tem muitos grandes problemas com as competições de programação no Japão. |
| ★★ ☆ | Uva | Um arquivo de problema da velha escola / juiz on-line com rica história. Milhares de problemas, incluindo muitos clássicos, são apresentados aqui. No entanto, é fortemente aconselhado que você pratique com a UHunt seguindo sua seção "Exercício de Programação Competitivo". |
| ★★ ☆ | Hackerrank | A Hackerrank é uma empresa que se concentra em desafios de programação competitiva para consumidores e empresas. Os desafios de programação do Hackerrank podem ser resolvidos em uma variedade de linguagens de programação e abrangem vários domínios de ciência da computação. |
| ★★ ☆ | POJ | POJ é um juiz on -line com muitos grandes problemas mantidos pela Universidade de Pequim. A maioria dos programadores competitivos chineses começou sua jornada aqui. A plataforma é realmente datada de compilação misteriosa e problemas de tempo de execução podem ocorrer. |
| ★★ ☆ | Projeto Euler | O Projeto Euler apresenta um conjunto impressionante de bons problemas de matemática. Também hospeda um fórum onde as pessoas podem discutir. |
| ★ ☆☆ | Hackerearth | A HackeRearth é uma empresa de tecnologia de startups com sede em Bangalore, Índia, que fornece soluções de recrutamento. |
| ★ ☆☆ | Juiz online do Caribe | O COJ é hospedado pela Universidade de Ciências da Informática (UCI, por seu acrônimo em espanhol), localizado em Cuba. ACM ICPC e os estilos de concursos progressivos, principalmente dos setters de problemas do Caribe e da América Latina, também possuem classificador de problemas e calendário de concursos. |
| ★★ ☆ | CS Academy | Novo na cena da programação competitiva, a CS Academy é um juiz on -line crescente que organiza competições uma vez a cada duas semanas. Ele suporta bate -papo ao vivo, lições interativas e um editor online integrado (que realmente funciona). |
| ★★ ☆ | Copa de código russo | Competições de programação alimentadas pelo Grupo Mail.ru. A competição consiste em 3 qualificação, 1 eliminação e 1 rodadas finais. Para cada rodada, os participantes recebem 4-8 problemas que devem ser resolvidos em um período fixo de tempo. |
| ★★ ☆ | Lutas de código | As lutas de código é um site para prática de programação competitiva e preparação de entrevistas. Possui desafios diários de dificuldade variável, um arquivo de problemas e mini-torneios regulares (a cada 15 minutos). Bom para iniciantes. |
| ★★ ☆ | Ômegaup (espanhol) | O Omegaup é um site comunitário para treinamento de programação competitivo. É também onde a Olimpíada Mexicana em Informática (Omi: Olimpiada mexicana de Informática) é hospedada. |
Classificadores de problemas
Sites classificando problemas de programação.
Escolha uma categoria (por exemplo, DP) de problemas de interesse e prática nesse tópico.
| ☆ | Nome | Descrição |
|---|
| ★★★ | A2 Juiz Online | Misturado |
| ★★★ | Classificador de problemas | Spoj |
| ★★ ☆ | Juiz online UVA | CP Book |
| ★ ☆☆ | Tags de forças de código | Cf (dp) |
| ★★ ☆ | Hackerrank | Hackerrank |
| ★★ ☆ | Folha de treinamento dos juniores, de Mostafa Saad Ibrahim | ~ 800 problemas ordenados para que os recém-chegados sejam bons até o div2-d |
| ★★ ☆ | Lucky 貓的 uva (ACM) 園地 (chinês) | Uva |
| ★★ ☆ | Topcoder Problem Archive | Lista de problemas com categorias e níveis de complexidade |
Calendários do concurso
Calendários para concursos de programação iminente.
(Nunca perca outro concurso!)
| ☆ | Nome | Descrição |
|---|
| ★★★ | Calendário do concurso de programação - HackerRank | Exportação do calendário do Google disponível |
| ★★ ☆ | Clist.by | API disponível para uso |
| ★★ ☆ | Calendário de codificação (aplicativo Android) | |
| ★★ ☆ | Calendário do codificador: aplicativo Android, Extensão Chrome, Firefox complementar | |
| ★★★ | CodeHorizon: aplicativo iOS, aplicativo Android | |
| ★★★ | Calendário competitivo de concursos de programação | Exportação do calendário do Google disponível |
Sites para perguntas
Estes são ótimos sites para fazer perguntas.
Cole seus códigos em ideone, pastebin ou outros sites para evitar problemas de formatação.
| ☆ | Nome | Descrição |
|---|
| ★★★ | Codeforces | Para respostas rápidas, o Codeforces é definitivamente o local preferido para perguntar sobre qualquer coisa relacionada à competição. |
| ★★★ | Programação competitiva - Quora | Você normalmente obteria respostas mais elaboradas no Quora, mas pode não ter suas perguntas respondidas imediatamente. |
| ★★ ☆ | Troca teórica de ciência da computação | Este lugar é geralmente para os acadêmicos; portanto, não faça perguntas sobre os problemas do concurso aqui. |
Acampamentos e treinamentos
Treinamentos e acampamentos on -line.
| ☆ | Nome | Descrição |
|---|
| ★★★ | Treinamento on-line de solução gratuita de problemas, de Mostafa Saad Ibrahim | Veja os detalhes do coaching e as pessoas comentar sua natureza/qualidade. |
Implementações
Implementações de algoritmo e estrutura de dados.
| ☆ | Nome | Descrição |
|---|
| ★★★ | Codelibrary, de Andrey Naumenko (Indy256) | A Codelibrary contém uma grande coleção de implementações para algoritmos e estruturas de dados em Java e C ++. Você também pode visitar o repositório do github dele. |
| ★★★ | Spaghetti-Source/Algoritmo, de Takanori Maehara (@tmaehara) | Implementações de alta qualidade de muitos algoritmos e estruturas de dados difíceis. |
| ★★★ | KTH-Competitive-Programação/KACTL, de Simon Lindholm (Simonlindholm) et al. | Um caderno de equipe fenomenalmente organizado, documentado e testado do Kth Royal Institute of Technology. Um dos cadernos de equipe mais bem trabalhados (bibliotecas de concursos) que eu já vi. |
| ★★ ☆ | Jaehyunp/Stanfordacm | O notebook da equipe de Stanford é bem mantido e os códigos dentro são de alta qualidade. |
| ★★ ☆ | ngthanhtrung23/acm_notebook_new, da equipe rr watameda (i_love_hoang_yen, flashmt, nguyenhungtam) da Universidade Nacional de Cingapura | RR Watameda representou a Universidade Nacional de Cingapura para as Finais Mundiais do ACM-ICPC de 2016. Os itens deste caderno são bastante padrão e bem organizados. |
| ★★ ☆ | bobogei81123/bcw_codebook, da equipe BCW0x1bd2 (Darkhh, Bobogei81123, Etapa5) da Universidade Nacional de Taiwan | O BCW0X1BD2 representou a Universidade Nacional de Taiwan para as finais mundiais do ACM-ICPC de 2016. Este notebook contém implementações robustas para estruturas e algoritmos avançados de dados. |
| ★ ☆☆ | Foreverbell/ACM-ICPC-Cheat-Sheet, de Foreverbell (Foreverbell) | Um caderno com algumas estruturas e algoritmos avançados de dados, incluindo alguns do cenário da Informática da China. |
| ★ ☆☆ | Arquivo de código de Igor, de Igor Naverniouk (Abednego) | Um bom caderno de Igor Naverniouk, que atualmente é engenheiro de software no Google e parte da equipe do Google Code Jam. |
Especificidades de idioma
Idiomas e outros conhecimentos diversos.
C/C ++
| ☆ | Nome | Descrição |
|---|
| ★★ ☆ | Ligue C ++ com a Biblioteca de Modelo Padrão - Topcoder: Parte 1, Parte 2 | Um tutorial introdutório sobre STLs básicos de C ++. |
| ★★ ☆ | Mais uma vez na entrada/saída C ++ - forças de código | Saiba mais sobre otimizações de E/S C ++. |
| ★★ ☆ | Truques de C ++ - Codeforces ... Quais são alguns truques legais de C ++ para usar em um concurso de programação? - Quora | Truques C ++ abundantes para programação competitiva. Observe que alguns devem ser usados com cuidado. |
| ★★★ | C ++ STL: Estruturas de dados baseadas em políticas - Codeforces: Parte 1, Parte 2 | Introdução detalhada às estruturas de dados extras implementadas no GNU C ++. A documentação oficial pode ser encontrada aqui. |
| ★ ☆☆ | C ++ 11 Perguntas frequentes (inglês, chinês, russo, japonês, coreano) | Uma lista de perguntas frequentes sobre C ++ 11 coletada e escrita por Bjarne Stroustrup, criadora do C ++. |
Java
| ☆ | Nome | Descrição |
|---|
| ★★ ☆ | Como ler a entrada em Java - Tutorial - Codeforces | Aprenda a ler a entrada mais rápida. Esta é uma leitura obrigatória para aqueles que pretendem usar o Java para programação competitiva |
| ★★ ☆ | Como classificar as matrizes em java e evitar o TLE - Code Forces | Algumas dicas sobre como evitar atingir o pior caso de classificação rápida |
| ★★ ☆ | Bignum Aritmetic em Java - Vamos superar o BigInteger! - Codeforces | Uma classe Biginteger personalizada, mas mais rápida |
| ★★ ☆ | Coleções EZ, EZ Life (New Java Biblioteca para Concursos) - Codeforces | Uma biblioteca Java para concursos escritos por Alexey Dergunov (Dalex). Arraylist, Arraydeque, Heap, Classe, Hashset, Hashmap, Treeset, Treemap, Treelist e Classes de pares são implementados |
Variado
| ☆ | Nome | Descrição |
|---|
| ★★★ | Bit twidling hacks | Uma enorme lista compilada de truques de manipulação de bits. |
| ★★★ | Comparando números de ponto flutuante, edição de 2012 - ASCII aleatório | Tudo o que você precisa saber sobre números de ponto flutuante. A deve ler especialmente para tópicos de geometria. |
| ★★ ☆ | Idiomas de estilo C orientados a objetos: C ++, Objective-C, Java, C#-uma folha de referência lado a lado | Uma folha de referência lado a lado detalhada para sintaxes comuns. |
Ferramentas
Ferramentas impressionantes que facilitarão sua vida.
Ides
| ☆ | Nome | Plataforma | Descrição |
|---|
| ★★★ | Vim | CLI / plataforma cruzada | O VIM é um dos editores de texto mais populares entre programadores avançados. Ele permite que a edição de texto seja feita com muita eficiência com pressionamentos apenas de teclas. O VIM também é altamente configurável, extensível e integra -se com shells (linhas de comando) muito bem. O único revés sobre o VIM é que ele tem uma alta curva de aprendizado para iniciantes. |
| ★★★ | Emacs | CLI / plataforma cruzada | O EMACS é outro editor de texto popular (ou ambiente de desenvolvimento para ser mais preciso). O debate sobre "Vim vs. Emacs" é constantemente criado devido à sua popularidade. Basicamente, o Emacs é mais do que apenas um editor de texto. Possui plugins como gerentes de arquivo, navegadores da Web, clientes de email e notícias que permitem que os usuários executem essas tarefas diretamente dentro do EMACS. O Emacs é "mais pesado" por causa disso, mas, sem dúvida, tem uma curva de aprendizado relativamente mais fácil para iniciantes. |
| ★★★ | Far Manager | Híbrido / Windows | O Far Manager é o editor mais amplamente usado na comunidade de programação competitiva Ru/CIS. Na verdade, é um gerenciador de arquivos em seus ossos nus, mas você pode instalar o FarColorer - um plug -in de marcador de sintaxe para programar nele. Configurado corretamente, o Far Manager permite navegar entre os arquivos com muita eficiência enquanto escreva seus códigos. |
| ★★★ | Code :: Blocks | GUI / plataforma cruzada | Code :: Blocks é o IDE preferido para C/C ++. É um IDE versátil e completo, com inúmeras ótimas características. Code :: Blocks geralmente é fornecido junto com o VIM em concursos de programação. |
| ★★★ | Intellij Idea | GUI / plataforma cruzada | Intellij Idea é certamente um dos melhores Ides para Java. É usado pela maioria dos programadores competitivos que usam o Java como seu idioma principal. Não deixe de conferir o Chelper, um plug -in muito útil escrito para concursos de programação. |
| ★★ ☆ | Texto sublime | GUI / plataforma cruzada | O texto sublime é um editor de texto extraordinário. Embalado com recursos poderosos e inovadores, como múltiplos cuidados, minimaps e paletes de comando, atrai uma comunidade forte e envolvente. O texto sublime é altamente extensível, portanto, tenha o controle de pacotes instalado e explore talvez um dos maiores catálogos de plugins! |
| ★★ ☆ | Eclipse | GUI / plataforma cruzada | Eclipse é outro bom IDE para Java. É uma alternativa boa à idéia intellij (um pouco inferior à idéia pelos padrões de hoje). Às vezes, os concursos fornecem apenas o eclipse por algum motivo, portanto, isso pode ser um bom incentivo para tentar usar o Eclipse. |
| ★★ ☆ | Clion | GUI / plataforma cruzada | Clion, produzido pela JetBrains - a mesma empresa que fez Intellij Idea, é um IDE poderoso para C ++. As licenças educacionais gratuitas estão disponíveis ou você pode experimentar o EAP (programa de acesso antecipado), que ainda é gratuito a partir de abril de 2018. Você pode desativar seu recurso de inspeção de código, pois isso causará um pouco de atraso. |
| ★ ☆☆ | Outros Ides | Misturado | O Visual Studio é o IDE a ser usado, caso você queira codificar em C#. ... O código do Atom e do Visual Studio é construído com elétron (escrito em JavaScript) e, portanto, um tanto que Hogging de recursos. ... Codelite é um IDE recentemente em ascensão. Cuidado que os tempos de carregamento e criação de projetos podem ser extraordinários. |
Uso pessoal
| ☆ | Nome | Descrição |
|---|
| ★★★ | Visualgo | Um site com uma grande coleção de ferramentas de visualização para algoritmos e estruturas de dados. |
| ★★★ | HELHEDORES GERAIS PRÁTICOS: ... Chelper (Intellij Idea) (manual) ... Caide (Visual Studio, Codelite, App Standalone Command Line) ... Jhelper (AppCode, Clion)-Tools-Judge (ferramenta de CLI independente, é mantida ativamente.) | Ótimas ferramentas que analisam os concursos, os códigos de biblioteca embutidos e fornecem estruturas de teste. Eles economizam você de gastar seu precioso tempo na troca de janelas e copiar-se de um lado para o outro. |
| ★★ ☆ | Codeforces Parsers: ... Codeforces Parser ... GOCF ... CFPARSER (EMACS) CFPARSER (CLI) | Essas ferramentas analisam os problemas de codificina e ajudam a executar testes de amostra. |
| ★★★ | A enciclopédia on-line de sequências inteiras (OEIS) | Uma enciclopédia impressionante com um banco de dados de inúmeras sequências inteiras. Ele também apresenta um poderoso mecanismo de pesquisa. Às vezes, um problema de combinatória aparentemente difícil pode ser equivalente a uma sequência inteira simples ou estudada. |
| ★★ ☆ | Sintaxe HighLighters: ... Tohtml.com ... Markup.su ... Hilite.me | Muito útil para criar slides ou notebooks de equipe com trechos de código bonitos e formatados. Basta copiar os trechos de código destacados e colá-los em seu editor favorito do Wysiwyg (que você é-você é o que você está)! |
| ★★ ☆ | Compartilhamento de código: ... ideone.com ... pastebin.com ... Ubuntu pastebin | Essas ferramentas geram páginas semi-permanentes para compartilhamento de código. Muito útil, especialmente quando você está tentando fazer com que outra pessoa procure seu código. |
| ★★ ☆ | Inefável | Uma simples graduadora de linha de comando para classificação local. |
| ★★ ☆ | udebug | Uma plataforma que fornece saídas esperadas para entradas especificadas pelo usuário para problemas no juiz online UVA. Alguns problemas também fornecem casos de teste adicionais para depuração. |
Preparação do concurso
| ☆ | Nome | Descrição |
|---|
| ★★★ | polígono | O Polygon fornece uma plataforma e um rico conjunto de ferramentas para a preparação do concurso profissional. ... Um exemplo: Validadores com testlib.h - Codeforces |
| ★★ ☆ | Editor de gráficos | Uma ferramenta fantástica para criar e visualizar gráficos. |
| ★★ ☆ | tcframe | Uma estrutura C ++ para gerar casos de teste de problemas de programação competitiva. |
| ★★★ | Juiz Virtual (VJudge) | O Virtual Judge (VJudge) permite que os usuários criem concursos virtuais com problemas a partir de notáveis arquivos de problemas. |
| ★★ ☆ | BNU Juiz Online | O juiz on -line da BNU também permite que os usuários criem concursos virtuais. |
| ★★ ☆ | Kattis | Kattis auxilia na preparação do concurso (envie um e-mail para assistência). |
Comunidade
Conheça os programadores competitivos semelhantes a Deus!
Aprenda dicas úteis, tutoriais e insights dessas pessoas :)
Blogs
| Nome (alça) | Nome do blog |
|---|
| Blogs Codeforces |
| Petr Mitrichev (Petr) | Algoritmos semanalmente |
| Makoto Soejima (RNG_58) | Blog do RNG_58 |
| Bruce Merry (Bmerry) | A entropia sempre aumenta |
| Przemysław Dębiak (Psyho) | Blog de Psyho |
| Anudeep Nekkanti (ANUDEEP2011) | Espaço para nome ANUDEEP;) |
| Vexorian (Vexorian) | Blog de Vexorian |
| Ashar Fuadi (Fushar) | Blog de Fushar |
| Lijie chen (wjmzbmr) | WJMZBMR (chinês) |
| Huang I-Wen (DREAMOON) | 小月的耍廢日誌 (chinês) |
| Shiang-Yun Yang (Morris1028) | Blog de Morris (chinês) |
| Yuhao du (Toodifficuit, Toosimple, Xudyh) | Xudyh (chinês) |
YouTube e transmissão ao vivo
| Nome (alça) | Link |
|---|
| Petr Mitrichev (Petr) | YouTube |
| Palestras de portão de Ravindrababu Ravula | YouTube |
| Mostafa Saad Ibrahim (Mostafa.saad.fci) | Programação competitiva YouTube (texto em inglês-inglês) |
| Tushar Roy | YouTube, com muitos vídeos tutoriais. |
| Geeksforgeeks | YouTube |
| Algoritmos ao vivo! | YouTube |
| Codechef | YouTube |
| Hackerrank | YouTube |
| Ideserve | YouTube |
| code_report | YouTube, com atualizações do concurso e tutoriais de problemas de HackerRank, LeetCode, Topcoder e Codeforces. |
| "Sothe", o lobo do algoritmo | YouTube |
| Egor Kulikov (Egor) | YouTube |
| Adam Bardashevich (assinante) | YouTube |
| Bohdan Pryshchenko (i_love_tanya_romanomova) | Twitch, YouTube |
| Vladimir Smykalov (Enot.1.10) | Twitch, YouTube |
| Aleksandar Abas (Alex7) | YouTube |
| Mikhail Tikhomirov (Endagorion) | YouTube |
| Kamil DeBowski (Errichto) | YouTube |
| David Hameyer (SecondThread) | YouTube, editoriais, palestras altas (tópicos avançados) |
| MyCodeschool | YouTube, vídeos de alta qualidade sobre programação básica, estruturas de dados e algoritmos |
| William Lin (tmwilliamlin168) | YouTube, principalmente fluxos, dicas, mas inspirador e às vezes perspicaz |
| Codencode (Kazama460) | YouTube, palestras curtas que abrangem vários tópicos relacionados à CP, como teoria de gráficos, teoria dos números, DP, estruturas de dados avançadas. |
| Colin Galen (Galen_Colin) | YouTube, editoriais, screencasts |
| William Feset | YouTube, vídeos de alta qualidade, cobrindo quase todas as estruturas de dados, algoritmos |
Quora
Visite Programação Competitiva - Quora (os 10 melhores escritores mais vistos).
| Importantes figuras da comunidade | Descrição |
|---|
| Bill Poucher | Executive Director of ACM-ICPC. CS Professor at Baylor University. |
| Michal Forišek (misof) | Organizer of IPSC and IOI. CS Teacher at Comenius University in Slovakia. Algorithm and CS Education Researcher. Former highly-rated competitive programmer. |
| Ahmed Aly (ahmed_aly) | Founder of A2OJ. HackerRank Lead Software Engineer. Former member of the Google Code Jam team. |
| Competitive Programmers | | |
|---|
| Thanh Trung Nguyen (I_love_Hoang_Yen) | Brian Bi (bbi5291) | Jonathan Paulson (jonathanpaulson) |
| Miguel Oliveira (mogers) | Egor Suvorov (yeputons) | Michal Danilák (Mimino) |
| Bohdan Pryshchenko (I_love_Tanya_Romanova) | Vladimir Novakovski (vnovakovski) | Nick Wu (xiaowuc1) |
| Cosmin Negruseri | Lalit Kundu (darkshadows) | Ashish Kedia (ashish1294) |
| Johnny Ho (random.johnnyh) | Joshua Pan (lonerz) | Anudeep Nekkanti (anudeep2011) |
| Steven Hao (stevenkplus) | Raziman TV (razimantv) | |
Other Awesome Resources
Artigos
Informative and helpful articles
| Assunto |
|---|
| Overview of Programming Contests, by Przemysław Dębiak (Psyho) |
| The 'science' of training in competitive programming - Codeforces, by Thanh Trung Nguyen (I_love_Hoang_Yen) |
| If you ask me how to improve your algorithm competition skill, I will give you the link of this blog. - Codeforces, by Huang I-Wen (dreamoon) |
| How to prepare for ACM - ICPC? - GeeksforGeeks, by Vishwesh Shrimali |
| Complete reference to competitive programming - HackerEarth, by Ravi Ojha |
| Getting started with the sport of competitive programming - HackerEarth, by Triveni Mahatha |
Perguntas frequentes
Fine answers to frequently-asked questions
| Pergunta |
|---|
| How do I start competitive programming? - Quora |
| How can I become good at competitive programming? - Quora ... What is the best strategy to improve my skills in competitive programming in 2-3 months? - Quora ... What is a good 6 month plan to start and progress through competitive programming? - Quora |
| How is competitive programming different from real-life programming? - Quora |
| What have you gained from competitive programming? - Quora |
Awesome Lists
Relevant awesome lists
| Nome | Link |
|---|
| C++ Books | The Definitive C++ Book Guide and List - Stack Overflow |
| Java Books | What are the best books to learn Java? - Quora |
| Advanced Java Books | What is the best book for advanced Java programming? - Quora |
| Algoritmos | tayllan/awesome-algorithms |
| Algorithm Visualization | enjalot/algovis |
| Matemática | rossant/awesome-math |
| C ++ | fffaraz/awesome-cpp |
| Java | akullpp/awesome-java |
| Courses | prakhar1989/awesome-courses |
| Free Programming Books | vhf/free-programming-books |
| Community-curated C++ Resources | Hackr.io |
Interview Questions
| Nome | Descrição |
|---|
| CareerCup | The most popular website for software engineering interview preparation. |
| InterviewBit | Features intriguing and refreshing game-play designs which are designed to invoke one's interest in practicing. |
| Awesome Interviews | A curated list of awesome interview questions |
| LeetCode | Well-organized website for software engineering interview preparation with best explanined solutions. |
Licença
Awesome Competitive Programming is licensed under a Creative Commons Attribution 4.0 International License.