このページの内容

Awesome Competitive Programming

Competitive Programmingを扱う資料や関連プロジェクトをまとめたAwesomeリストです。

目次

リスト集

トピック別に分類された優れたキュレーションリスト。

名前説明
★★★Good Blog Post Resources about Algorithm and Data Structures - CodeforcesCodeforcesのユーザーが書いた素晴らしいチュートリアルブログ記事のコレクション。興味深いものには、回文木、ポリシーに基づくデータ構造などがあります。
★★★All of the good tutorials found on codeforces - CodeforcesCodeforcesのユーザーが書いた別の優れたチュートリアルブログ記事のコレクション。
★★★Data Structures and Algorithms - CodeChef Discuss競技プログラミングのリソースを網羅した非常に完全なリスト。ブラウザのブックマークに必須の項目。
★★★How to prepare for ACM - ICPC? - GeeksforGeeksACM-ICPCの準備作業についての詳細な解説。

シラバス

Find out what topics you need to learn.

名前説明
★★★IOI SyllabusACM-ICPCに参加する競技プログラミング選手がテストされるための詳細なスyllabus。これはまだACM-ICPCに若干関連している。
★★★How to prepare for ACM - ICPC? - GeeksforGeeksACM-ICPCの準備についての詳細な解説。
★★☆Programming Camp Syllabus競技プログラミングにおける重要なテーマと練習問題のリスト。
★★☆Juniors Training Sheet, by Mostafa Saad Ibrahim新規参加者向けに800問の並べられた問題。Div2-Dまでに達するようになる。

チュートリアルサイト

Awesome websites with great tutorials.

名前説明
★★★Topcoder Data Science Tutorials信頼できるTopcoderメンバーが執筆したチュートリアルのリスト。多くのトッププログラマーはここからデータサイエンスを学び始めました。
★★★E-Maxx (Russian), (English)ロシア語話者向けの競技プログラミングコミュニティで広く使用・参照されているチュートリアルサイト。オリジナルサイトの多くの記事が英語に翻訳されています。残りの記事についてはGoogle翻訳が適切に機能します。
★★☆Algorithms - GeeksforGeeksトピックごとに丁寧に書かれた記事を豊富に収録したウェブサイト。アルゴリズム講座の補助として非常に優れたリソースです。
★★☆PEGWiki多くのテーマについて、驚異的な深さを持つウィキ風の解説を提供するウェブサイト。私の意見では、ウィキペディアの記事よりもはるかに優れています。
★★☆Notes - HackerEarthチュートリアルを共有するための素晴らしいクラウドソーシングプラットフォームです。また、Code Monkも訪れてください。
★★☆USA Computing Olympiad (USACO)そのウェブサイトには、難易度が高く、多様なアルゴリズム問題に対するプログラミング解決策のスキルを自らのペースで向上させるための複数のトレーニングページが含まれています。
★★☆basecs基本アルゴリズムとデータ構造に関する詳細で図解されたチュートリアルを掲載するブログ。
★★☆Competitive Programming - Commonlounge初心者および中級者向けの短い動画チュートリアル。各種競技プログラミングブログから最も優れたものを選んで構成された高度なチュートリアル。
★☆☆OLYMPIADS IN INFORMATICS情報教育分野の優れた学生に取り組むプロフェッショナルたちの研究および実践を専門に扱う国際ジャーナル。
★☆☆algolist (Russian)すべての種類のアルゴリズムについてのロシア語サイト。このサイトに掲載されているいくつかのテーマはかなり興味深い。
★★☆演算法筆記 (Algorithm Notes) (Chinese)台湾の競技プログラミングコミュニティ内で最も人気のあるチュートリアルサイトの一つ。このサイトの運営者は、アルゴリズムの研究に莫大な努力を払っている。
★★☆国家集训队论文 1999-2015 (Papers from Chinese IOI training camps) (Chinese)中国のIOIトレーニングキャンプから出された論文。ある地域が強調する内容が他の地域と異なるという点が興味深い。
★★★Mini-Editorials, by Mostafa Saad Ibrahim trainees多くの問題(UVA/SPOJ/IOI/オリンピック問題を含む)に対する解法とミニエディタリー
★★☆OI Wiki (Competitive Programming) (Chinese)OI Wikiは、無料かつオープンで継続的に更新されるプログラミングコンテスト(競技プログラミング)の知識統合サイトであることを目指しています。このWikiは、何かを学ぼうとしている競技プログラマーにとっての補助的なガイドや手引きのような存在です

公開講座

Consider beginning your competitive programming journey with these awesome courses!

名前説明
★★☆Code Monk, HackerEarthによって競技プログラミングにおける基本的なテーマについて、ステップバイステップで解説された素晴らしいチュートリアル。
★★★Stanford CS 97SI: Introduction to Competitive Programming Contests包括的な講義スライドと、短い練習問題のリストを提供。
★★☆How to Win Coding Competitions: Secrets of ChampionsedXにおけるITMO大学の競技コーディングに関するコース。
★★☆Codechef’s Indian Programming CampCodechef’s Indian Programming Camp 2016からのビデオ講義。セレブな競技プログラマーであるセルジー・クリク、ケビン・チャールズ・アティエンザ、アンデープ・ネクアンティが講義を行う。実際の競技コンテスト問題に適用することで、これらの概念を探索することに重点を置いている。
★★☆Reykjavik T-414-ÁFLV: A Competitive Programming CourseBjarki Ágúst Guðmundsson (SuprDewd)が担当する素晴らしい講義。これらの講義は、見やすいスライドと練習に適した問題リストを備えている。
★★☆NCTU DCP4631: Problem Solving and Programming Techniques基本的なテーマについての講義で、講義スライドが良好である。
★☆☆Materials (English) による Arabic Competitive Programming YouTube Channelモスタファ・サード・イブラヒムが提供する、アルゴリズムに関する幅広いテーマをカバーする資料(スライド&ソースコード)

アルゴリズムとデータ構造の公開講座

名前説明
★★★prakhar1989/awesome-courses#algorithms著名な機関(MIT、スタンフォード、カリフォルニア大学バークレー校など)が提供するオープンコースの素晴らしい一覧。
★★★MIT SMA 5503: Introduction to Algorithmsアルゴリズム入門(Introduction to Algorithms)の共著者であるチャールズ・リスロン教授と、データサイエンス分野で著しい成果を上げたエリク・デマイン教授が講義を行うこのコースは、非常に優れた教材を提供しており、直感的かつ包括的な分析を併せて行っています。
★★☆UIUC Algorithm Courseアルゴリズムに関する幅広いテーマをカバーする授業ノート、宿題、試験、およびディスカッション問題

書籍

A list of recommended books for competitive programming.

NameDescription
★★☆Competitive Programming, ステファンとフェリックス・ハリムによるこの本には関連するデータ構造、アルゴリズム、およびプログラミングのヒントが収録されています。これは好評を得ている本です。… 第1版は download (pdf) で無料です。
★★☆Programming Challenges: The Programming Contest Training Manual、スティーブン・スケインアとミゲル・リバルアによるこの本には100以上のプログラミングチャレンジが含まれており、それらに取り組むために必要な理論と重要な概念も含まれています。問題はテーマごとに分類されており、完全なチュートリアル資料で補足されています。
★★☆Competitive Programmer’s Handbook、アンティ・ラクソンンによる競技プログラミングに取り組むIOIおよびICPC選手向けの導入書。無料で download (pdf)
★★☆Algorithmic Thinking: A Problem-Based Introduction、ダニエル・ジンガロ著競技プログラミング問題(IOI、USACO、CCC/CCOなど)を用いてデータ構造とアルゴリズムを教える書籍。
★★☆Computational Geometry: Algorithms and Applications、マーカス・デ・ベルグ、オトフィード・チェン、マール・ヴァン・クレヴェルド、マーカス・オーバーマルス著これは、計算幾何学の幅広い問題を扱った、よく書かれた本です。
★☆☆The Hitchhiker’s Guide to the Programming Contests, ニテ・ニマジェンベこの本はdownload (pdf)で無料です。この本は、競技プログラミングに関連するさまざまなテーマを扱っています。
★★★プログラミングコンテストチャレンジブック (Japanese), by 秋葉拓哉, 岩田陽一, 北川宜稔An absolutely phenomenal book. The contents, organized in a very coherent manner, are nothing short of amazing. … 培養與鍛鍊程式設計的邏輯腦:世界級程式設計大賽的知識、心得與解題分享 (Chinese Traditional)
★★☆算法竞赛入门经典 (Chinese), by 刘汝佳The Art of Algorithms and Programming Contests (English), 打下好基礎:程式設計與演算法競賽入門經典 (Chinese Traditional)
★★☆算法竞赛入门经典——训练指南 (Chinese), by 刘汝佳, 陈锋提升程式設計的解題思考力─國際演算法程式設計競賽訓練指南 (Chinese Traditional)
★★★算法艺术与信息学竞赛 (Chinese), by 刘汝佳, 黄亮昔の名作。古くはありますが、この本の内容は今日の基準で依然として非常に難しいとされています。

アルゴリズムの書籍

名前説明
★★★Introduction to Algorithms, ティオマス・H・コルメン、チャールズ・E・リスロン、ロナルド・L・リビストおよびクライド・ストーンによる「CLRS(名前の頭文字から)」とも呼ばれるこの書籍は、アルゴリズムおよびデータ構造の「聖書」とも呼ばれる。大学のアルゴリズム講義向けの最も人気のある教科書の一つである。本書は、さまざまなアルゴリズムおよびデータ構造について詳細に扱っている。執筆は厳密であり、一部の読者にとっては難しい場合がある。
★★☆Algorithm Design, Jon Kleinberg および Éva Tardos によるこの本はアルゴリズム設計の技術について述べています。構成がしっかりしており、明瞭で理解しやすい言語で書かれています。各章には実際の例と助けになる演習問題が付いています。ネットワークフローに関する章は多くの人々から高い評価を受けています。… 教科書に付随する講義スライドは、その official website に公開されています。
★★☆The Algorithm Design Manual, Steven S. Skiena によるこの本は読みやすいテキストで書かれています。一部の読者は、他の本よりも包括的であると感じています。その official website に、いくつかの優れたリソース(著者の自身の動画講義を含む)が見つかります。
★★★Algorithms, ロバート・セドウィックとケビン・ウェインによるこの本は丁寧に分類されており、詳細な説明と素晴らしい図解が組み合わさっています。一部のIOIトレーニングキャンプで教科書として使用されています。
Advanced Algorithms and Data Structures, マルケロ・ラロッカによるこの本はアルゴリズムについて別のアプローチを提供し、理論と実用的な視点をバランスよく取り、各章に一つのセクションを設け、アルゴリズムを日常の業務や競技プログラミングに応用する実際のケースにどう使うかを説明しています。また、古典的、高度な、そして新しいアルゴリズムを組み合わせて紹介しています。
★★★Algorithms, Jeff Erickson による理論的コンピュータ科学の講義ノートに基づく、自出版の教科書の無料電子版。CC BY 4.0 によるライセンスで公開されている。バックトラッキング、動的計画法、グリーディアルゴリズム、特にグラフについて、深い解説を提供している。
Grokking Data Structures, Marcello La Rocca によるGrokking Data Structures は、配列や連結リストといった最も基本的なデータ構造から、グラフといった強力な構造まで、丁寧に導入してくれます。初心者には最適であり、スタートするには高校レベルの数学知識だけが必要です。各データ構造には、独自の完全なPython実装が付属しており、学んだ内容をすぐに実験できるようになっています。

数学の書籍

名前説明
★★☆Discrete Mathematics and Its Applications, Kenneth H. Rosen離散数学は競技プログラミングに密接に関連しています。この書籍は、論理と証明、集合、関数、数列、行列、数論、再帰、カウント、確率、グラフ、木、ブール代数など、多くのテーマについて包括的な資料を提供しています。
★★☆Concrete Mathematics: A Foundation for Computer Science, ロナルド・L・グレイム、ドナルド・E・クヌース、オレン・パタシニクの著離散数学におけるより深い洞察を提供し、数に関連するテーマに特に重点を置いている.
★★☆Linear Algebra and Its Applications, デイビッド・C・レイ、スティーブン・R・レイ、ジュディ・J・マクドナルドの著物理系(科学者やエンジニアにとって)と抽象系(数学家にとって)の間のギャップを、優れた仕事で埋めている。
★★☆Introduction to Probability、チャールズ・M・グラインドストとJ・ラウリ・スネルによるこれはよく書かれた確率入門書です。… download (pdf) はGNUフリードキュメンテーションライセンスのもとで公開されています。
★★☆How to Solve It: A New Aspect of Mathematical Method、G・ポリーラによる昔ながらの名作です。本書では著者が創造的に問題を解決するための体系的な方法を提供しています。
★★☆Intermediate Counting & Probability、デイビッド・パトリックによるカウントと確率に関するトピック、元のアメリカ数学オリンピック選手であるデイビッド・パトリックによる。内容には、包含排除、1対1対応、ピーグホールの原理、構成的期待値、フィボナッチ数とカタラン数、再帰、条件付き確率、生成関数、グラフ理論など、多くのトピックが含まれる。

練習サイト

Good online judge systems / contest platforms to practice.

名前説明
★★★CodeforcesCodeforcesは、おそらく最も人気のあるコンテストプラットフォームの一つである。現在はサラトフ州大学によって維持されている。定期的なコンテストと、無数の素晴らしいオリジナル問題が提供されている。さらに、各コンテストには、通常は作者自身が執筆した即時的な助けとなるチュートリアルが用意されている。Codeforcesは、強いコミュニティを備えている。すべてを加算すると、ここでは確かに学びと成長が大きく進むことになる。
★★★TopcoderTopcoderは2001年から存在している。歴史的に豊かで、技術コンテスト分野において最も評価の高い組織の一つとされている。数百のSRMが豊富な問題セットを生み出した。ここでの問題は、他のものよりも通常、より難しいものであり、そのため多くのエリートプログラマーに人気がある。年間のTopcoder Open(TCO)も広く話題になっている。
★★★Google Code JamGoogle Code Jamは、おそらく最も評価の高いプログラミングコンテストの一つである。このコンテストは、決められた時間内に解決しなければならない、ユニークなプログラミングチャレンジから構成されている。参加者は、解決策を得るために、どのようなプログラミング言語や開発環境を使用してもよい。
★★★AtCoderAtCoderは、非常に評価の高いコンテストプラットフォームであり、高評価の日本の競技プログラミング選手たちによって構築された新しいプラットフォームである。
★★☆CodeChefCodeChefは、Directiの非営利教育プロジェクトである。グローバルな競技プログラミングプラットフォームであり、プログラマーのコミュニティが学生やプロフェッショナルのコーディングスキルをテスト・向上させるために貢献している。その目的は、学生およびプロフェッショナルソフトウェア開発者に実践、競技、スキル向上のプラットフォームを提供することである。さらに、若い段階の学生にアプローチし、インドにおけるプログラミング文化を育成することを目指している。
★★★SPOJSPOJプラットフォームは、オンラインジャッジシステムを中心に構成されている。そのコミュニティが作成した問題や、過去のプログラミングコンテストから採用された問題が非常に多く、中には練習に適した素晴らしい問題も含まれている(詳しくはProblem classifiersセクションを参照)。SPOJは、高度なユーザーが自らのルールでコンテストを組織できるようにしている。
★★☆TimusTimus Online Judgeは、ロシア語で最も大きなプログラミング問題アーカイブであり、自動ジャッジシステムを備えている。問題は主にウラル联邦大学のコンテスト、ウラル大会、ウラルACM ICPCサブレギオンコンテスト、およびペトロザヴォドスクトレーニングキャンプから集められている。
★☆☆HDUHDUは、杭州電気大学が運営するオンラインジャッジである。ここには、中国のIOIシーンから生まれた多くのクラシック問題が収録されている。
★★☆Aizu Online JudgeAizuオンラインジャッジは、秋田大学が運営するコンテストプラットフォームおよび問題アーカイブです。日本国内のプログラミングコンテストから多くの優れた問題が収録されています。
★★☆UVa古くからの問題アーカイブ/オンラインジャッジで、豊かな歴史を持っています。ここには数千の問題が掲載されており、多くのクラシック問題も含まれています。ただし、以下の「競技プログラミング演習」セクションを用いて練習することを強く推奨します。uHunt
★★☆HackerRankHackerRankは、消費者および企業向けの競技プログラミングチャレンジを専門とする企業です。HackerRankのプログラミングチャレンジは、さまざまなプログラミング言語で解決可能であり、複数のコンピュータサイエンス分野をカバーしています。
★★☆POJPOJは、北京大学が維持するオンラインジャッジで、多くの優れた問題が収録されています。多くの中国の競技プログラミングライターはここからスタートしました。このプラットフォームは非常に古いため、不明なコンパイルや実行時の問題が発生する可能性があります。
★★☆Project Eulerプロジェクト・ユーラーは、美しい数学問題のセットを提供しています。また、人々が議論できるフォーラムを運営しています。
★☆☆Hackerearthハッカー・アースは、インドのバンガロールに拠点を置くスタートアップ技術企業で、採用ソリューションを提供しています。
★☆☆Caribbean Online JudgeCOJは、キューバにあるインフォマティクス・サイエンス大学(UCI、スペイン語での略称)が運営しています。ACM ICPCおよびプログレッシブコンテストスタイルを提供しており、主にカリブ海およびラテンアメリカの問題設定者による問題を収録しています。また、問題分類とコンテストカレンダーを提供しています。
★★☆CS Academy競技プログラミング界に新しく登場したCSアカデミーは、2週間に1回コンテストを主催するオンラインジャッジです。ライブチャット、インタラクティブな講義、統合されたオンラインエディタ(実際に動作する)をサポートしています。
★★☆Russian Code CupMail.Ru Groupが運営するプログラミングコンテスト。コンテストは3回の予選、1回のエリミネーション、1回の最終戦から構成される。各ラウンドでは、4〜8問の問題が与えられ、それらを決められた時間内に解く必要がある。
★★☆CodeFightsCodeFightsは、競技プログラミングの練習や面接準備に使えるウェブサイト。さまざまな難易度の毎日チャレンジ、問題のアーカイブ、そして定期的に(15分ごと)開催されるミニトーナメントが特徴。初心者向けに最適。
★★☆OmegaUp (スペイン語)OmegaUpは、コミュニティベースの競技プログラミング訓練用ウェブサイト。また、メキシコ情報オリンピック(OMI:Olimpiada Mexicana de Informática)もこのサイト上で開催されている。

問題分類サイト

Sites classifying programming problems. Choose a category (eg. DP) of interest and practice problems on that topic.

名前説明
★★★A2 Online Judge混合
★★★Problem ClassifierSPOJ
★★☆UVa Online JudgeCP Book
★☆☆Codeforces TagsCF (DP)
★★☆HackerRankHackerRank
★★☆Juniors Training Sheet, by Mostafa Saad Ibrahim~800 件の問題(初心者向け)でDiv2-Dまで習得するため
★★☆Lucky貓的 UVA(ACM)園地 (Chinese)UVa
★★☆Topcoder problem archiveカテゴリと複雑度レベルに基づく問題一覧

コンテストカレンダー

Calendars for impending programming contests. (Never miss another contest!)

名前説明
★★★Programming Contest Calendar - HackerRankGoogleカレンダーのエクスポートが可能
★★☆clist.byAPIを使用可能
★★☆Coding Calendar (Android App)
★★☆Coder’s Calendar: Android App, Chrome Extension, Firefox Add-on
★★★CodeHorizon: iOS App, Android App
★★★Competitive Programming Contests CalendarGoogleカレンダーのエクスポート可能

質問サイト

These are great sites to ask questions. Paste your codes at ideone, pastebin or other sites to avoid formatting issues.

名前説明
★★★Codeforces競技に関することについて質問したいなら、Codeforcesは間違いなく最も適した場所です。
★★★Competitive Programming - QuoraQuoraではより詳細な回答を受けることがありますが、すぐに回答を受けるとは限りません。
★★☆Theoretical Computer Science Stack Exchangeここは一般的に学術的な話題の場所なので、コンテスト問題に関する質問はここではしないでください。

合宿・トレーニング

Online Trainings and Camps.

名前説明
★★★Online Free Problem-Solving Coaching, by Mostafa Saad Ibrahimその性質/品質についてのコーチングの詳細および人々のコメントを参照してください。

実装例

Algorithm & Data structure implementations.

名前説明
★★★CodeLibrary、Andrey Naumenko(indy256)によるCodeLibraryには、JavaおよびC++でアルゴリズムとデータ構造の実装が多数収録されています。また、彼の GitHub Repository をご訪問ください。
★★★spaghetti-source/algorithm、Takanori MAEHARA(@tmaehara)による多くの難しいアルゴリズムおよびデータ構造の高品質な実装
★★★kth-competitive-programming/kactl, シモン・リンホルム(simonlindholm)らによってカーティア大学工科大学院(KTH)から提供された、非常に整然と記録・検証されたチームノートブック。私がこれまでに見た中で、最も優れたチームノートブック(コンテストライブラリ)の一つです。
★★☆jaehyunp/stanfordacmスタンフォードのチームノートは良好に維持されており、その中にあるコードは高品質である。
★★☆ngthanhtrung23/ACM_Notebook_new, チーム RR Watameda (I_love_Hoang_Yen, flashmt, nguyenhungtam) による、シンガポール国立大学RR Watameda は 2016 年 ACM-ICPC 世界最終戦でシンガポール国立大学を代表した。このノートブック内の項目は非常に標準的で整理がされている。
★★☆bobogei81123/bcw_codebook, 国立台湾大学のチーム bcw0x1bd2(darkhh, bobogei8123, step5)によるbcw0x1bd2 は 2016 年 ACM-ICPC 世界最終戦で国立台湾大学を代表した。このノートブックには高度なデータ構造とアルゴリズムの堅牢な実装が含まれている。
★☆☆foreverbell/acm-icpc-cheat-sheet, foreverbell(foreverbell)によるデータ構造とアルゴリズムに関するノートブック。中国の情報科学界からもいくつかを含む。
★☆☆igor’s code archive, イーゴル・ナバレンニウク(アベドネゴ)現在はグーグルのソフトウェアエンジニアとして勤務し、グーグルコードジャムチームの一員であるイーゴル・ナバレンニウクによる優れたノートブック。

言語別情報

Languages and other miscellaneous knowledge.

C/C++

名前概要
★★☆Power up C++ with the Standard Template Library - Topcoder: Part 1, Part 2C++の基本的なSTLについての導入チュートリアルです。
★★☆Yet again on C++ input/output - CodeforcesC++のI/O最適化について詳しく学びましょう。
★★☆C++ Tricks - CodeforcesWhat are some cool C++ tricks to use in a programming contest? - Quora競技プログラミング向けの豊富なC++のテクニック。ただし、一部は慎重に使用すべきです。
★★★C++ STL: Policy based data structures - Codeforces: Part 1, Part 2GNU C++ で実装された追加データ構造についての詳細な解説。公式ドキュメントは here で見つかる。
★☆☆C++11 FAQ (English, Chinese, Russian, Japanese, Korean)C++11に関するよくある質問(FAQ)のリスト。Bjarne Stroustrupが作成したC++の創始者による収集と執筆。

Java

名前説明
★★☆How to read input in Java — tutorial - Codeforces入力の読み取りを速くする方法を学びましょう。競技プログラミングでJavaを使用する人には必須の読み物です
★★☆How to sort arrays in Java and avoid TLE - Codeforcesクイックソートの最悪ケースを避けるためのいくつかのヒント
★★☆BigNum arithmetic in Java — Let’s outperform BigInteger! - Codeforces基本的なが速いカスタムBigIntegerクラス
★★☆EZ Collections, EZ Life (new Java library for contests) - Codeforcesアレクセイ・デルグノフ(dalex)が書いたコンテスト用のJavaライブラリ。ArrayList、ArrayDeque、Heap、Sort、HashSet、HashMap、TreeSet、TreeMap、TreeList、ペアクラスなどが実装されています

その他

名前説明
★★★Bit Twiddling Hacksビット操作のトリックをまとめた大きなコンパイルリスト。
★★★Comparing Floating Point Numbers, 2012 Edition - Random ASCII浮動小数点数についてのすべての知識。特に幾何学のテーマに関しては必須の読み物。
★★☆Object-Oriented C Style Languages: C++, Objective-C, Java, C# - a side-by-side reference sheetよく使われる文法の詳細な並列参照表

ツール

Awesome tools that will make your life easier.

IDE

名前プラットフォーム説明
★★★VimCLI / Cross-PlatformVimは、高度なプログラマの中では最も人気のあるテキストエディタの一つです。キーボードの操作だけでテキスト編集を行うことができ、非常に効率的に動作します。Vimは非常にカスタマイズ可能で、拡張性も高く、シェル(コマンドライン)との統合も非常に良好です。Vimの唯一の欠点は、初心者にとっては学習曲線が非常に高いことです。
★★★EmacsCLI / Cross-PlatformEmacsはもう一つの人気のあるテキストエディタ(正確には開発環境と言える)です。VimとEmacsの比較についての議論は、その人気から常に提起されています。基本的にEmacsはテキストエディタ以上のものであり、ファイルマネージャ、ウェブブラウザ、メールクライアント、ニュースクライアントなどのプラグインを持ち、ユーザーがそれらのタスクをEmacs内部で直接実行できるようにしています。このためEmacsは「重い」と言えますが、初心者にとっては学習曲線が比較的簡単であると評価されます。
★★★Far Managerハイブリッド/Windowsファールマネージャーは、ルーラー/ CISにおける競技プログラミングコミュニティで最も使われているエディタです。本来はファイルマネージャーですが、 FarColorer - シンタックスハイライトプラグインをインストールすることで、その上にプログラミングができます。適切に設定されたファールマネージャーは、コードを書いている際にファイル間を非常に効率的に移動できるようになります。
★★★Code::BlocksGUI/クロスプラットフォームコード・ブロックスはC/C++のための最も一般的なIDEです。これは、多くの優れた機能を備えた、完全な多機能IDEです。プログラミングコンテストでは、コード・ブロックスは通常、Vimとともに提供されます。
★★★IntelliJ IDEAGUI / クロスプラットフォームIntelliJ IDEA は Java 用の IDE として、間違いなく最も優れたものの一つです。Java を主な言語として使う競技プログラマーの多くがこれを使用しています。プログラミングコンテスト用に作られた非常に便利なプラグイン CHelper をぜひチェックしてください。
★★☆Sublime TextGUI / クロスプラットフォームSublime Text は非常に優れたテキストエディタです。複数カーソル、ミニマップ、コマンドパレットといった強力で革新的な機能を備え、強いコミュニティを形成しています。Sublime Text は非常に拡張性が高く、必ず Package Control をインストールして、おそらく最も大きなプラグインカタログの一つを探索してください。
★★☆EclipseGUI / クロスプラットフォームEclipse は Java 用の他の良い IDE です。Intellij IDEA への代替案としてはまあまあ適している(現代の基準では IDEA よりやや劣る)。あるコンテストでは、何かの理由で Eclipse しか提供しないことがありますので、Eclipse を使うことに興味を持たせるきっかけになるかもしれません。
★★☆CLionGUI / クロスプラットフォームJetBrains が開発した CLion は C++ 用の強力な IDE です。教育用無料ライセンスが提供されています。または、2018年4月現在、無料の EAP (Early Access Program) を試用できます。コードチェック機能を無効にすると、かなりの遅延を回避できます。
★☆☆その他のIDE混合Visual Studio は C# でコードを書く場合に使用すべきIDEです。… Atom および Visual Studio Code は JavaScript で書かれた Electron で構成されており、そのためリソースを多く消費します。… CodeLite は新しい傾向にあるIDEです。起動時間およびプロジェクト作成時間は、非常に長くなる可能性があります。

個人利用

名前説明
★★★VisuAlgoアルゴリズムとデータ構造向けの視覚化ツールを豊富に備えたウェブサイト。
★★★一般実務支援ツール: … CHelper (IntelliJ IDEA) (manual) … caide (Visual Studio, CodeLite, セパレートコマンドラインアプリ) … JHelper (AppCode, CLion) online-judge-tools (セパレートCLIツール、積極的に維持されています。)コンテストのパース、インラインライブラリコードの処理、テストフレームワークを提供する優れたツール。これらにより、ウィンドウの切り替えやコピー・ペーストを繰り返す貴重な時間を無駄にせずに済みます。
★★☆Codeforces パーサー: … Codeforces ParserGoCFcfparser (emacs) cfparser (cli)これらのツールはCodeforcesのコンテスト問題をパースし、サンプルテストの実行を支援します.
★★★The On-Line Encyclopedia of Integer Sequences (OEIS)非常に魅力的なエヌクリプディアで、無数の整数列のデータベースを備えています。また、強力な検索エンジンも備えています。たとえ難しそうに見える組み合わせ論の問題も、単純または既に研究された整数列に等しい場合があります.
★★☆構文強調ツール: … tohtml.commarkup.suhilite.meスライドやチーム用ノートブックを作成する際に、美しくフォーマットされたコードスニペットを簡単に作成できる。ハイライトされたコードスニペットをコピーし、お気に入りのWYSIWYG(What-You-See-Is-What-You-Get)エディタに貼り付けましょう!
★★☆コード共有:… Ideone.comPastebin.comUbuntu Pastebinこれらのツールはコード共有用の半永久的なページを生成します。特に、誰かに自分のコードを確認してもらう際には非常に便利です。
★★☆Ineffableローカルでの評価に使えるシンプルなコマンドラインベースの評価ツール。
★★☆uDebugUVa Online Judgeにおける問題に対してユーザーが指定した入力に対して期待される出力を提供するプラットフォーム。一部の問題はデバッグ用に追加のテストケースを提供する。

コンテスト準備

名前説明
★★★polygonpolygonはプロフェッショナルなコンテスト準備に向けたプラットフォームおよび豊富なツールを提供する。… 例: Validators with testlib.h - Codeforces
★★☆Graph Editorグラフを作成し可視化するための素晴らしいツールです。
★★☆tcframe競技プログラミング問題のテストケースを生成するためのC++フレームワークです。
★★★Virtual Judge (vjudge)Virtual Judge (vjudge) は、著名な問題アーカイブからの問題を用いて仮想コンテストを作成できるようにします。
★★☆BNU Online JudgeBNU Online Judge は、ユーザーが仮想コンテストを作成できるようにしています。
★★☆KattisKattis がコンテストの準備に協力(助言をメールで依頼してください)

コミュニティ

Meet the god-like competitive programmers! Learn helpful tips, tutorials and insights from these people :)

ブログ

名前(ハンドル)ブログ名
Codeforces blogs
Petr Mitrichev (Petr)Algorithms Weekly
佐島マコト (rng_58)rng_58’s blog
ブルース・メリー (bmerry)Entropy always increases
プルミスラフ・デビアク (Psyho)Psyho’s blog
アヌディープ・ネクンティ (anudeep2011)Namespace Anudeep ;)
vexorian (vexorian)vexorian’s blog
Ashar Fuadi (fushar)Fushar’s blog
LiJie Chen (WJMZBMR)WJMZBMR (Chinese)
Huang I-Wen (dreamoon)小月的耍廢日誌 (Chinese)
楊翔雲 (morris1028)Morris’ Blog (Chinese)
杜宇豪 (TooDifficuIt, TooSimple, xudyh)xudyh (Chinese)

YouTube・ライブ配信

名前 (ハンドル)リンク
ペトール・ミトリチェフ (ペトール)Youtube
ラヴィンダラバウ・ラヴラのゲート講義Youtube
モスタファ・サード・イブラヒム (mostafa.saad.fci)Competitive Programming Youtube (Arabic Speech-English Text)
ツシャール・ロイYoutube、多くのチュートリアル動画を提供しています。
GeeksforGeeksYoutube
アルゴリズムライブ!Youtube
CodeChefYoutube
HackerRankYoutube
IDeserveYoutube
code_reportYoutube, HackerRank, LeetCode, Topcoder および Codeforces のコンテスト更新と問題チュートリアルを提供。
アルゴリズムの狼を”Sothe”するYoutube
エゴル・クリコフ(エゴル)Youtube
アダム・バーデシェビッチ(サブスクリプター)Youtube
ボハダン・プリシェンコ(I_love_Tanya_Romanova)Twitch, Youtube
ヴラディミール・スミカロフ(enot.1.10)Twitch, Youtube
アレクサンダー・アバス(Alex7)Youtube
ミハイル・チホミロフ(Endagorion)Youtube
カミル・デボワ(Errichto)Youtube
デイビッド・ハーマイア(SecondThread)Youtube, エディトリアル、高度なトピックの高质量講義
mycodeschoolYoutube, 基本的なプログラミング、データ構造およびアルゴリズムに関する高质量動画
ウィリアム・リン (tmwilliamlin168)Youtube、主にストリーム配信で、励ましを提供し、時には洞察深い内容をもたらす
コードノコード (kazama460)Youtube、グラフ理論、数論、DP、高度なデータ構造など、さまざまな競技プログラミング関連のトピックをカバーする短い講義
コリン・ギャルン(galen_colin)Youtube、エディタリアル、スクリーンキャスト
ウィリアム・フェセットYoutube、ほぼすべてのデータ構造とアルゴリズムをカバーする高品質ビデオ

Quora

Visit Competitive Programming - Quora (Top 10 Most Viewed Writers).

重要な地域の人物概要
Bill Poucherバイラル大学のコンピュータサイエンス教授。 ACM-ICPCの執行役員。
Michal Forišek (misof)IPSCおよびIOIの組織者。スロベニアのコメニウス大学のコンピュータサイエンス教師。アルゴリズムおよびコンピュータサイエンス教育分野の研究者。かつて高評価を受ける競技プログラミング参加者。
Ahmed Aly (ahmed_aly)A2OJの創始者。HackerRankのソフトウェアエンジニア。以前はGoogle Code Jamチームのメンバー。

その他の優れたリソース

記事

Informative and helpful articles

FAQ

Fine answers to frequently-asked questions

Awesomeリスト

Relevant awesome lists

名前リンク
C++ ブックThe Definitive C++ Book Guide and List - Stack Overflow
Java ブックWhat are the best books to learn Java? - Quora
高度な Java ブックWhat is the best book for advanced Java programming? - Quora
アルゴリズムtayllan/awesome-algorithms
アルゴリズムの可視化enjalot/algovis
数学rossant/awesome-math
C++fffaraz/awesome-cpp
Javaakullpp/awesome-java
コースprakhar1989/awesome-courses
無料のプログラミング書籍vhf/free-programming-books
コミュニティがキュレーションしたC++リソースHackr.io

面接問題

名前説明
CareerCupソフトウェアエンジニアのインタビュー準備に最も人気のあるウェブサイト
InterviewBit興味を引く、新鮮で魅力的なゲームプレイデザインを備え、実践への関心を高めるよう設計されています
Awesome Interviews素晴らしいインタビュー質問を厳選したリスト
LeetCodeソフトウェアエンジニアのインタビュー準備に最適な、よく説明された解決策を備えた整理されたウェブサイト

ライセンス

Creative Commons Attribution 4.0 International

素晴らしい競技プログラミングは、Creative Commons Attribution 4.0 International Licenseに従ってライセンスされています。