目次
- 記事
- 書籍、オンラインブック
- オンラインイベント、公開講座などの資料集
- Discord
- YouTube
- ニコニコ動画
- 番組アーカイブ
記事
入門者、初心者向けの記事
- 初心者こそ、競技プログラミングに挑戦してほしい。髙橋直大の「世界にAtCoderを広める」という夢 - AtCoder社長のchokudaiさんが、プログラミング初心者に競技プログラミングを勧めている記事。また、同氏がプログラミングと出会ったきっかけ・競技プログラミングの魅力・会社設立に至った経緯なども語られている。
- アルゴリズムとは何か!? ~ 文系理系問わず楽しめる精選6問 ~ - drkenさんによる記事。アルゴリズムとは何か?という疑問に対して、平易で分かりやすい文章と図表を駆使して解説されている。また、アルゴリズムを学ぶ意義・メリットについても書かれている。
-
AtCoderに登録したら次にやること ~ これだけ解けば十分闘える!過去問精選10問 ~ - drkenさんによる、AtCoderのコンテストに初めて参加する方に向けた精選10問。さまざまな言語による解答例のリンクなどの資料も充実している。
C++以外の言語による解答例(リンク元より一部抜粋。注:記事に掲載されているコードが最新のジャッジシステムで動作しない場合もある)
- APG4bからAtCoderを始めた人向けの導線 - AtCoderが提供するプログラミングの入門教材C++入門 AtCoder Programming Guide for beginners (APG4b)の概説と、APG4bをある程度学習した人に向けた基本的な練習方法やTipsが紹介されている記事。
- AtCoderで始めるPython入門 - AtCoderで開催されているAtCoder Beginner Contest (ABC)のA問題、B問題をPython(3.8.2)で解くための解説記事。
- AtCoder版!蟻本 (初級編) - drkenさんによる、蟻本(書籍の項目で後述)の例題をAtCoderなどで出題された問題に対応づけた記事。中級編、上級編、発展的トピック編もある。
- レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【初級編:競プロを始めよう】 - AtCoderでレッドコーダーのE869120さんによる記事。初心者に向けて競技プログラミングの特徴・面白さ、アカウントの登録方法やレーティングの説明がされている。さらに、上達するためのガイドラインが丁寧に解説されている。中級編や上級編もある。また、TeruMiyakeさんが、精選100+50問チャレンジシートを公開している。
- 競プロ典型90問 - E869120さんが、競技プログラミング・アルゴリズムに関する教育的な問題をTwitterに投稿する企画(2021年3月30日から毎朝7時40分。日曜日を除く)。解説やサンプルコードなどは、GitHubで公開される予定。
- 現役高校生が、AtCoderでレッドコーダーになるまでにやってきたこと。プログラミング上達の秘訣を全て教えます - E869120さんが、競技プログラミングを通して得た経験を共有するために書かれた記事。競技プログラミングやアルゴリズムの面白さ、上達するための練習方法、参考資料などが紹介されている。
- 情報オリンピックへのいざない ~日本一の競技プログラマーを決める戦い~ - 主に高校生以下を対象としたコンテストである「情報オリンピック」の説明から、大会の面白さ・上位に入るためテクニックを解説した記事。高専・大学生以上の人にも一読の価値があると思われる。
- 競技プログラミング入門者の成長のためのメモ - 競技プログラミングを始めるにあたって、チーム開発との違い、目標設定の重要性、言語や各種ツールの選定、コンテストサイトの紹介、学習方法など幅広い内容について解説されている。
- やってみよう競技プログラミング - 競技プログラミングそのものの説明から、コンテストの参加にまつわるアンチパターンとオススメの練習方法が解説されている。
- Competitive Programming - 競技プログラミングにおいて、Kotlinで参加する方法を解説した公式チュートリアル。
コードを快適に書くための環境構築
以下の記事は、2019年3月〜2020年11月に公開・更新されたものです。随時、最新の記事を追加する予定です。
特定のOSに依存しない内容
- 競プロ環境構築入門 - 競技プログラミングという文脈において「環境構築」の意味や実現できることについて理解を深めることを目的とした記事。注: これから環境構築を行う場合は、より具体的な手順が書かれた記事を並行して読むことを推奨。
- bits/stdc++.hのインクルードを高速化しよう! - GCCのヘッダファイルであるbits/stdc++.hを正しく使うことで、コンパイルを高速化する方法を紹介した記事。リポジトリ作成者注: 記事の内容を試すためには、C++の実行環境を事前に用意しておく必要がある。
Macintosh
- AtCoder用C++開発環境 (Mac編) - 動作環境は、macOS Catalina。C++17(デバッグ:Clang、テスト実行・提出: G++)のコンパイル・実行環境をVisual Studio Codeと、拡張機能を使って構築する方法が紹介されている。サンプルケースの実行や提出もできる。
- Visual studio codeで競プロ環境構築[mac OS] - 動作環境は、macOS Mojave。C++(GCC)のコンパイル・実行環境をVisual Studio Codeと、拡張機能を使って構築する方法が紹介されている。便利な標準ライブラリ(bits/std++.h)を使用することができる。
Windows
- Visual Studio Codeで競プロ環境構築(導入編) - C++(GCC)のコンパイル・実行環境をVisual Studio CodeとWindows Subsystem for Linuxで構築する方法が丁寧に解説されている。
- Visual Studio Codeで競プロ環境構築(実践編) - 便利なショートカット、コードスニペット、拡張機能、サンプルケースの自動検証、デバッグツールについて紹介されている。
- 【VScode+WSLで始める】競プロ用C++デバッグ環境構築 - C++のコンパイル・実行環境をVisual Studio CodeとWindows Subsystem for Linuxで構築したあとの拡張機能の導入・設定ファイルについて紹介されている。
- Windowsで競プロに必要なNeovim環境を整える - カスタマイズ性の高いエディタの一つであるNeoVimを利用して、C++(clang)のコンパイル・実行環境を構築するための記事。関連ツールの導入方法や設定ファイル・プラグインのおすすめ情報も紹介されている。
- WSL2とVSCodeでC++環境構築した(AtCoder Libraryを使えるようになるまで) - C++やRustのコンパイル・実行環境をVisual Studio CodeとWindows Subsystem for Linuxで構築するための記事。設定ファイルやAtCoder Libraryに関する説明もある。
実行環境のテンプレート、サンプルレポジトリ
- atcoder_docker_sample - Visual Studio Code・Docker・Gitを使って、PythonとC++の実行環境を構築することができる。
- atcoder-rs - Rustのテンプレートプロジェクト。
- at-coder-with-php - PHPの実行環境を構築することができる。
- AtCoder with Rust in mac - cargo-atcoderを使用して、Mac OSでRustの実行環境を構築することができる。
- rust-lang-ja/atcoder-rust-base - Rustの日本語ドキュメント作成チームによるCargoパッケージテンプレート。
プログラミング言語の学習
C++
- C++入門 AtCoder Programming Guide for beginners (APG4b) - AtCoder公式が提供する汎用的なプログラミングの基礎を学ぶための入門教材。また、知識の定着を図るための練習問題と自分で書いたプログラムを自動で採点してくれるシステムがあるのが大きな特徴。
- cpprefjp - C++日本語リファレンス - C++のリファレンスを日本語で提供するWebサイト。サンプルコードも用意されている。
- Google C++ スタイルガイド 日本語全訳 - 「Google C++ Style Guide」の日本語訳。注: C++のチュートリアルではなく、スタイルガイドであることに留意されたい。
Python
- Python-izm - Pythonの習得を目的としたWebサイト。入門編、基礎編、応用編などに分かれている。
Rust
- AtCoderとRustで始める!競技プログラミング入門(Rust版 APG4b) - 有志がC++入門 AtCoder Programming Guide for beginners (APG4b)のRust版を作成・公開している。
アルゴリズムの解説
- たのしい探索アルゴリズムの世界【前編:全探索、bit全探索から半分全列挙まで】 - 探索アルゴリズムについて、基礎から応用まで網羅的に図解された記事。問題に対して「探索的な視点からの見方・考え方」のイメージを深めることができる。後編では、実社会での活用例が示されている。
- ソートを極める! 〜 なぜソートを学ぶのか 〜 - ソートそのものの解説だけでなく、ライブラリの使い方・アルゴリズムの使いどころまで説明されている。「ソート」という題材を通じたさまざまなアルゴリズムの技法・概念を学ぶきっかけになる記事。
- 高速な比較安定ソートアルゴリズム「颯式」の紹介(ベンチマークあり) - 「クイックソート種より高速」に動作することを目指した、マージソートの改良アルゴリズムに関する解説記事。また、他のソートアルゴリズムとの性能比較も行われている。
- 累積和を何も考えずに書けるようにする! - 高速に処理する手法の一つである累積和をテンプレート化して、スムーズに実装するための解説記事。
- 二分探索アルゴリズムを一般化 〜 めぐる式二分探索法のススメ 〜 - 二分探索法のエッセンスを凝縮・抽象化して、適用範囲の広い一般形が解説されている記事。また、バグを埋め込みにくい実装方法として、「めぐる式二分探索」が紹介されている。なお、二分法との違いを知りたい場合は、別の著者による解説記事を参照されたい。
- 計算量オーダーの求め方を総整理! 〜 どこから log が出て来るか 〜 - 計算量の概念・意義・表記方法から、計算量の求め方について豊富な例が紹介されている。
- 特集!知らないと損をする計算量の話 - 実務でありがちな遅いコードの書き方を例に、計算量を意識することの意義を解説した記事。C++、Java、Pythonの典型的な処理について計算量が示されている。
- 再帰関数を学ぶと、どんな世界が広がるか - 使いどころや動作がつかみづらい再帰関数について、豊富な実例とともに解説されている記事。
- スタックとキューを極める! 〜 考え方と使い所を特集 〜 - 基本的なデータ構造であるスタックとキューの考え方と活用方法について解説された記事。
- DFS(深さ優先探索)超入門! 〜 グラフ・アルゴリズムの世界への入口 〜【前編】 - 探索手法の一つである深さ優先探索について、問題を解きながら慣れることを目指した記事。後編もある。
- BFS (幅優先探索) 超入門! 〜 キューを鮮やかに使いこなす 〜 - 探索手法の一つである幅優先探索について解説されている記事。異なる視点・方法で問題を解くことで、グラフの性質について深く親しむことを目指しているのが特徴。また、深さ優先探索の記事とは、独立に読むことができるよう工夫されている。
- 最短経路問題総特集!!!~BFSから拡張ダイクストラまで~ - コンテストで超頻出の最短経路問題に関するアルゴリズムをまとめた記事。幅優先探索などの基本的なアルゴリズムから経路復元、拡張ダイクストラといった応用的な内容まで網羅されている。例題のリンクも豊富に掲載されている。
- Bellman-Ford法の解説 - 最短経路問題を解くアルゴリズムであるベルマン・フォード法について、C++での実装例と動作が図解されている記事。
- ビット演算(bit演算)の使い方を総特集! 〜 マスクビットからbitDPまで 〜 - ビット演算を用いて実現できる処理について、基本的な内容(フラグ管理、マスクビット)から高度な内容まで解説した記事。同一の著者によって、bit全探索をより詳しく解説した記事もある。
- 誰でも分かる!ランダム性を利用した平衡二分木 - ランダム性を利用した平行二分木について、丁寧に解説した記事。平行二分木の図解、ランダム性を利用する方法やC++による実装について説明されている。
- しゃくとり法(尺取り法)の解説と、それを用いる問題のまとめ - 処理が遅い状況を改善するために有効なテクニックの一つである「しゃくとり法」について解説した記事。しゃくとり法が利用できる状況や応用方法が紹介されているだけでなく、例題の解説と実装も豊富に掲載されている。
- 尺取り法の実装で嵌ったあの日の涙を数え切れないあなたにお送りする、尺取り法実装の † ソウル † です。 - 尺取り法の難しいポイントを2つに分けて、それぞれ実装の基本を解説した記事。また、応用に向けた説明と記事のリンクが記載されている。
- 典型的なDP(動的計画法)のパターンを整理 Part1 ~ ナップサックDP編 ~ - 動的計画法(DP)を学び始めた人向けの記事。また、動的計画法を初めて聞く人や経験が浅い人向けに、AtCoderでは入門コンテンツが公開されている。非公式ではあるが、問題の解説・類題集も併せて読むと理解がとても深まる。
- DPまとめコンテスト(EDPC)解説 目次 - 有志によるEducational DP Contest / DP まとめコンテストの解説記事のリンク。動的計画法(DP)の問題に対して、入門編(A〜E問題)、基本編(F〜L問題)、応用編(M〜T問題)、発展編(U〜Z問題)に分けて解説が用意されている。
- 貰うDPと配るDP、メモ化再帰、個数制限なしナップサック問題 - AtCoder Beginner Contest 099 C問題を題材に、メモ化再帰・貰うDP・配るDP・幅優先探索・個数制限なしナップサックDP・全探索+Greedyといった複数のアプローチについて解説した記事。
- 桁DPの痒いところに手が届く解説 - 桁DPについて入門者が疑問に感じるポイントを解説した記事。特に、桁DPを利用することでうまく計算できる理由、数えている内容、初期条件の与え方に重点が置かれている。
- 部分列DP — 文字列の部分文字列を重複なく走査するDPの特集 - 文字列の部分文字列に対し、条件を満たすものを重複なく数える問題について、その難しさと動的計画法による解法(部分列DP)を解説した記事。例題や類題のリンクも掲載されている。
- ゲームを解く!Educational DP Contest K, L問題の解説 - 「ゲームを解く」という定義から、ゲーム探索の考え方やシンプルなゲームをプログラムで解く方法などついて解説した記事。
- UnionFindTreeに関する知見の諸々 - データ構造の一つであるUnion Find Treeに関する実装のバリエーションを解説した記事。また、同アルゴリズムの派生系とC++の実装例も紹介されている。
- 【競技プログラミング】online dynamic connectivity(削除可能union-find)の作り方を詳しく解説!!! - Dynamic Connectivity(Union-Findの削除可能版)の構築と実装方法を解説した記事。前提として、平行二分木に関する知識が求められる。注: 筆者によると、作成難易度はかなり高い。
- “データ構造をマージする一般的なテク”とは? - データ構造に効率的なマージ機能を追加する方法を解説した記事。Union Find Treeの
merge
を高速化したときの工夫を応用している。注: 原典は記事投稿サービスの終了で閲覧できないため、アーカイブを掲載。 - データ構造 Fenwick tree (binary indexed tree, BIT) にどっぷりと入門し、その美しき構造に心を洗われたい方のための紹介記事です! - データ構造の一つであるFenwick tree(Binary Indexed Tree、BIT)の基本的な理論について数式とグラフを用いた詳しい説明や実装のコツが解説されている。また、応用例として、二分探索の実行、二次元への拡張方法などが解説されている。
- 容量スケーリング法のすゝめ - 最小費用流問題に対する容量スケーリング法と、その実装方法を紹介した記事。
- 「1000000007で割ったあまり」の求め方を総特集! 〜 逆元から離散対数まで 〜 - コンテストで頻出の「1000000007で割ったあまり」を求める問題への対策をまとめた記事。このような問題が出題される理由の説明から、四則演算・累乗・二項係数など幅広い話題について解説されている。
- 平方分割の練習をしようにも難しい問題ばかり、そんなお悩みに狙いを決めて手取り足取りのレクチャーです! - Aizu Online JudgeのRange Sum Queryを題材に、平方分割の本質部分を実装するための方法が解説されている。
- 実世界で超頻出!二部マッチング (輸送問題、ネットワークフロー問題)の解法を総整理! - 二部マッチング問題(2つのカテゴリ間で最適なマッチングを構成していく問題)について、実社会における豊富な実例とともに、解法が説明されている。
- 二部グラフの最小点被覆、最大安定集合 (最大独立集合)、最小辺被覆を総整理! - グラフ上の最適化問題である、最大マッチング問題・最小点被覆問題・最大安定集合問題・最小辺被覆問題について、問題の定義から二部グラフにおける各問題の具体的な構成まで解説した記事。また、記事の冒頭に問題別の構成に関する早見表もある。
- 離散フーリエ変換(DFT)の仕組みを完全に理解する - 高速フーリエ変換の前提知識である「離散フーリエ変換」の原理・公式の導出を丁寧、かつ、分かりやすく解説することを目指した記事。
- FFT(高速フーリエ変換)を完全に理解する話 - 高速フーリエ変換について、丁寧に解説された記事。記事を読む前提として、数IIまでの知識が求められる。
- [数学・numpy] 高速フーリエ変換(FFT)による畳み込み - 競技プログラミングで高速フーリエ変換を活用するための基礎知識が整理されている。Pythonのライブラリnumpyを利用した実装例もある。
- 高速フーリエ変換の実装を難しそうかなと思っている方が、なんだ簡単じゃないですか!! となるための実装講座です - 高速フーリエ変換の知識があることを前提に、実装方法に重点を置いた解説記事。C#での実装例もある。
- 遅延評価セグメント木をソラで書きたいあなたに - 遅延評価セグメント木に関する理論と実装方法を解説した記事。前提条件として、セグメント木の理論を理解して実装できることが求められる。
数学に関する知識
- 競技プログラミングに関係する数学の整理 ~文系出身や数学苦手erが、もっと競プロを楽しむために~ - 競技プログラミングの問題を解く上で必要となる数学の分野・キーワードなどを網羅的にまとめた記事。
- Cognicull - さまざまな数学用語が分かりやすく解説されているWebサイト。また、自然科学や工学に関する内容も含まれている。
- 高校数学の美しい物語 - 高校数学に関する内容を分かりやく解説したWebサイト。大学数学の内容についても記事が多数掲載されている。
- 三角形の頂点の座標から五心の座標を求める - 三角形の頂点の座標から、五心(重心・外心・内心・垂心・傍心)を求める方法を解説した記事。C++での実装も紹介されている。
- プログラミングコンテストにおける計算幾何入門 - 幾何問題(平面/空間上で図形を処理する問題)の構成要素、基本的なアルゴリズム、応用的な用法・実践例などが解説されている資料。
- 集合 列 多重集合 違い - 集合・列・多重集合の違いと記法について解説した記事。
- 競プロerのための群論 (swapと順列と対称群) - 競技プログラミングにおけるswapや順列に関する問題を群論(特に対称群)の視点から捉えることを目標にした記事。群論の入門という位置付けにもなっている。
- オンライン整数列大辞典 (OEIS) - 整数列(各項が整数である数列)に関するオンラインのデータベース。公式、参考文献などの情報も含まれている。
- Prime CountのPDFを書きました - 素数の個数を求めるアルゴリズムであるMeissel-Lehmer Algorithmとその高速化方法について紹介した記事。
- ミニマックス定理の意味と初等的証明 - ミニマックス定理のゲーム理論的な意味の解釈方法と同定理の証明を紹介した記事。
- 接続行列を係数にもつ線形方程式 (PDF) - 「グラフの接続行列を係数にもつ線形方程式」の解法を説明した記事。また、解法の擬似コードやコンテストの例題も掲載されている。
- 「写像12相」を総整理! 〜 数え上げ問題の学びの宝庫 〜 - 条件を満たすものを数え上げるタイプの問題(「数え上げ」の問題)で登場する写像12相を整理した記事。写像12相の中でも特に高度な内容とされる「スターリング数」と「分割数」の解説および実装について紙面が割かれている。また、写像12相に関連する例題のリンクも掲載されている。
- 二項係数の和の処理(形式的べき級数) - 後述する数え上げテクニック集に掲載されている「14.1 頻出公式集」を形式的べき級数などを用いて証明した記事。前提知識として、形式的べき級数の定義や基本的な演算方法に対する理解が求められる。
- 【競技プログラミング】形式的冪級数の応用テクニック(前編) - 数え上げなどの問題を解くときに用いられる「形式的冪級数」の応用テクニックをまとめた記事(hotman78さん)。前提知識として、フーリエ変換や形式的冪級数の基礎について理解していることが求められる。また、optさんによって、形式的冪級数が活用できる問題リストが公開されている。
- 競技プログラミングにおける数学的問題まとめ - 数学的な知識の理解を前提とした問題が、ジャンル別に掲載されている記事。
難問に対するアプローチ方法
- 平面上のロシアゲー(構築ゲー)を解くためのそこそこ一般的なテクについて - 平面上で何かを構築するタイプの問題へのアプローチ方法を解説した記事。
- 整数論テクニック集 - kirika_compさんによる「整数論」に関するテクニックをまとめた資料集。資料作成者の注: コンテストで出題された問題をもとに解説しているため、ネタバレを非常に多く含む。
- もう数え上げも怖くない ―競プロ数え上げ問題40選― - Rho17さんによる「数え上げ」の問題の定石と考え方を解説した資料。後述の「数え上げテクニック集」よりも簡単な部分に焦点を絞っているのが特徴。また、紹介されている定石や考え方を利用した例題とヒントが掲載されている。
- 数え上げテクニック集 - DEGwerさんによる「数え上げ」の問題を解くコツが凝縮された資料集。難易度は、後述の書籍「プログラミングコンテストチャレンジブック」(通称、蟻本)よりも、やや難しい程度と記載されている。資料作成者の注: AtCoder Grand Contestなどの問題のネタバレを多分に含んでいる。
最適解を求める問題に関する知見
- AHC001(マラソンマッチ)の参加者の使用言語の分布を調べてみた - AtCoder Heuristic Contest 001で一定の得点以上の提出コードを対象として、利用者の多い言語、使用言語と得点・順位との関係を調査した記事。ヒューリスティック型のコンテストにおいて、使用言語を選択する際に参考になると思われる。
- AtCoder Heuristic Contest 001 - じろうのブログ - rstoickさんによるAtCoder Heuristic Contest 001の解答方針と、得点の増加につながった考え方・指標・調整方法などを紹介した記事。
- AtCoder Heuristic Contest 001 AtCoder Ad - びったんびったん - hakomoさんによるAtCoder Heuristic Contest 001の解答方針と頻出テクニックを紹介した記事。
- 競プロ解法紹介~大局観で高得点を取る!~ - マラソン形式の問題であるChokudai Contest 001の解法を紹介した記事。愚直な解法から高得点を狙うための着眼点や方法が解説されている。
- 競プロ解法紹介~レベル別マラソンの戦い方~ - マラソン形式の問題であるHack To The Future 予選問題を題材に、初心者から上級者までを対象として、それぞれのレベルに応じた戦い方を紹介した記事。
焼きなまし法に関する知見
ヒューリスティック型のコンテストでよく使われる手法の一つである「焼きなまし法」の説明、および、その応用に関する知見を掲載しています。
- 競技プログラミングにおいて焼きなまし法に堕ちずに落とすコツ - tsukammoさんが「焼きなまし法」を適切に利用するための知見をまとめた記事。相性の良い/悪い問題の特徴、同手法の適用範囲、問題の特性を活用したアプローチ方法が紹介されている。
- 誰でもできる焼きなまし法 - gasinさんが「焼きなまし法」の汎用性の高い実装方法を紹介した記事。
- 詳解 焼きなまし法 - hakomoさんが、コンテストで高いスコア・順位を取るために、最上位陣による実践的な工夫と適用例の網羅を目指しているレポジトリ。注: 最終更新が2018年11月末であり、一部の項目については準備中であると思われる。
- 焼きなまし法のコツ Ver. 1.3 - shindanninさんが「焼きなまし法」の使い方について、高速化・次の状態の決め方・評価関数などの観点から網羅的にまとめている記事。また、各項目について重要度が併記されているのが特徴。
コードを実装するときの工夫
特定の言語に依存しない内容
- 競プロでWAが出たときのランダム入力データ生成入門 - 提出コードが不正解となったときに、提出した解法と愚直解による結果と比較する方法を紹介した記事。ランダムな入力データを生成するコードとして、C++とPythonによる実装例も掲載されている。
- 実装力で戦える! ~競プロにおける実装テクニック14選~ - 競技プログラミングで実装を楽にする方法、より可読性の高いコードを書く方法を解説した記事。実際のコードの改善例も示されている。
- 超高速!多倍長整数の計算手法【前編:大きな数の四則計算を圧倒的な速度で!】 - 大きな数を計算(多倍長整数演算)するときの工夫を解説した記事。後編もある。
- 間違っているテストケースが見つけられないときの手法 - chokudaiさんによる一連のツイートをまとめた記事。ABC175-C問題を例に、間違っているテストケースを見つける方法が解説されている。併せて、テストを自動化するツールの導入についても前向きなコメントがされている。
C++
- AtCoder 黄色の私が気を付けていること - C++での実装における工夫を紹介した記事。言語で用意されている機能を活用して、バグを埋め込みにくく、バグを埋め込んだとしても気付きやすく・直しやすくすることに重点が置かれているのが特徴。
- atcoder::lazy_segtreeに1行書き足すだけの抽象化 Segment Tree Beats - Segment tree beats (列に対する複雑な更新・取得処理を高速かつオンラインに実現する手法)に対する知識はあるが、これから実装したい人を対象とした記事。AtCoder Library (ACL)の
atcoder::lazy_segtree
に1行追加するだけで実装できる。 - 競技プログラミングでC++を書くときに意識していること - C++でコードを実装するときに、筆者が意識していることを紹介した記事。バグを埋め込みにくく、デバッグしやすいコードを書くためのポイントがまとめられている。
- 競技プログラミングでprintデバッグ - printデバッグを素早く行うためのマクロを紹介した記事。任意の引数、データ型を扱うことができる上、可読性を高める工夫もされている。
- 競技プログラミングにおける個人的C++コーディングスタイル(2020) - kimiyukiさんの好みのコーディングスタイルについて、競技プログラミングという文脈での利点と批判の両面から紹介した記事。
- 競技プログラミングにおけるC++の定数倍高速化テク - C++で実装したコードを高速化するテクニックをまとめた記事。
- 競プロ実装テクニック - よすぽの日記 - yosupoさんが、コードの実装において効果が高い、もしくは、一般性がありそうだと判断した項目についてまとめた記事。
- 競プロで踏みがちなC++の罠 - 2019年12月時点におけるC++の未定義動作や言語仕様の勘違いなどにより、意図とは異なる結果になりうる事例を紹介した記事。注: ジャッジシステムの実行環境および言語仕様の確認を推奨。
- 競プロに便利な C++17 新機能まとめ - 競技プログラミングに役立つC++17の標準ライブラリ、言語機能が16種類紹介されている。記事のサンプルコードは、AtCoderのGCC9.2.1システムで動作確認済み。
- 厳選!C++ アルゴリズム実装に使える25のSTL機能【前編】 - 競技プログラミングコンテストへの参加やアルゴリズムの学習で便利なC++の標準ライブラリ(STL)と実装例が紹介されている。後編もある。
- 代数的構造を乗せるデータ構造の設計について - 代数的構造を乗せるデータ構造の設計方法について、「静的メンバを実装した型を受け取る」方法を中心とした5種類を比較し、その利点・欠点を解説している。
- Dinic法とその時間計算量 - Dinic法(最大流問題を効率的に解くことができ、かつ、比較的実装が容易なアルゴリズム)について、標準的な実装方法を解説した記事。実装を間違えると、計算量が指数オーダーになることが指摘されている。
- 任意modでの畳み込み演算をO(nlog(n))で - 畳み込み演算を行うときに、任意のmodを使って高速に計算する方法・実装について解説した記事。
C#
- JOI 2015 予選 財宝(Treasure) 解説 (with C#での定数倍高速化に関する知見) - 第14回日本情報オリンピック予選のF問題を題材に、C#における定数倍高速化の知見をまとめた記事。
Python
- AtCoderでCythonの力を開放する魔術詠唱 - Cythonを利用して、コードの実行速度を高速化する方法を解説した記事。
- atcoderでよく使う手法python版 - Python利用者に向けたスッキリしたコードを書くための記事。基本的な文法、典型的なアルゴリズム・データ構造だけでなく、ライブラリnumpy・scipyの使い方も掲載されている。
- AtCoder緑になるまでに勉強した基本的なアルゴリズムやデータ構造まとめ - 筆者が緑コーダー(AtCoderの分類で、レーティング800〜1199)に到達するまでに学習したアルゴリズムが掲載されている。各種アルゴリズム(bit全探索・二分探索、幅優先探索、深さ優先探索、尺取り法、いもす法、ダイクストラ法、貪欲法、動的計画法、優先度付きキュー、UnionFind木)に対して、Pythonによる実装例もある。
- AtCoder Pythonの新環境についてまとめていく-1- 組み込み関数&モジュール - ジャッジシステムのアップデートに伴って、利用できるようになった便利な組み込み関数やモジュールがまとめられている。
- 競プロ界隈でpython強者がやっていることをまとめてみた - Python利用者に向けて、入出力や上位陣が利用している便利なコード集をまとめた記事。
- [競プロ] 割と真面目にPythonからC++のsetを使えるようにしたのでみんな使ってみてほしい - データ構造の一つである平行二分木が必要になったときに、PythonからC++のstd::setを利用する方法を紹介した記事。Pythonのラッパークラスについて、各メソッドの仕様と計算量が丁寧に解説されている。
- 絶対に競プロ以外では書いてはいけない!書いたら○されると思え!なテクニック集 - 競技プログラミングでPythonのコードを素早く書くことを最優先としたテクニック集。注: 業務で書くコードでは可読性や再利用性などが重視されるため、記事で紹介されている方法は基本的に利用しないことを推奨。
- Python3で競技プログラミングする時に知っておきたいtips(入力編) - Python利用者に向けて、初心者がつまづきがちなデータの入力方法を詳細に解説した記事。
- Pythonで競技プログラミング -ライブラリ編- - 筆者がPythonの標準ライブラリでよく利用する機能をまとめた記事。利用する問題例のリンクも掲載されている。注: 記事の最終更新が2019年4月とやや時間が経過しているため、コンテスト前にジャッジシステムで動作確認を行うことを推奨。
- Pythonで競プロやるときによく書くコードをまとめてみた - コンテストにPythonで参加する人に向けて、入出力やデータ操作、リスト内包表記などについて解説されている。
- Pythonで使う競技プログラミング用チートシート - 競技プログラミングでPythonを利用するときに必要な入出力、二分探索、文字列操作に関するチートシート。注: 記事の最終更新日時が2019年8月のため、最新のジャッジシステムに対応した書き方を調べる必要がある。
- Pythonで理解する蟻本(プログラミングコンテストチャレンジブック) - Pythonユーザが、後述する「プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~」(通称、蟻本)を理解するために書かれた記事。原著のコード(C++)が忠実にPythonで書き直されている。
- Pythonで”in list”から”in set”に変えただけで爆速になった件とその理由 - 要素群の中に特定の要素があるか探す処理を、listの代わりにsetを使って高速化する方法を紹介した記事。また、listとsetの実装の違いについても解説されている。
Rust
- AtCoder言語アップデートでRustの入出力が楽になっていた - AtCoderの言語アップデートに伴って追加された入出力関連の便利なライブラリが紹介されている記事。また、追加されたライブラリ一覧も掲載されている。
複数の言語
- パソコン詳しくない系競プロ勢向け正規表現 - 正規表現の基本的な説明とメリットが解説されている記事。また、競技プログラミングにおける使用例として、文字列を扱う問題(C++)やコンテストに出題する問題の入力チェック(Python)が紹介されている。
- 浮動小数点数オタクが AtCoder Beginner Contest 169 のC問題をガチで解説してみる - 浮動小数点数に関する計算精度・誤差に関する解説記事。コンテストで実際に出題された問題を題材に、各種言語による実装例と実行結果が記載されている。
- 要素の追加・削除とmexを対数時間で処理するよ - 整数の集合に対して、「n以上で、集合に含まれない最小の整数」を対数時間で求める方法を解説した記事。C++とRustによる実装例もある。
コンテストで出題された問題、アルゴリズムの解説
- 競技プログラマーのブログをまとめてみた - hamayanhamayanさんが、AtCoderで日本人上位300人+αのブログ・Qiitaの投稿の有無を調査した記事。
- アルゴリズムロジック - kami634さんのアルゴリズム解説サイト。サンプルコードは、C++で実装されている。
- いかたこのたこつぼ - ikatakosさんの解説ブログ。Pythonで実装されている。
- うさぎ小屋 - kimiyukiさんの解説ブログ。C++で実装されている。
- けんちょんの競プロ精進記録 - drkenさんの解説ブログ。C++で実装されている。
- はまやん はまやん はまやん - hamayanhamayanさんの解説ブログ。C++で実装されている。
- ARMERIA - betrue12さんの解説ブログ。RubyとC++で実装されている。
- kmjp’s blog - kmjpさんの解説ブログ。C++で実装されている。
- Kyopro Encyclopedia of Algorithms - 競技プログラミングに関するアルゴリズムの百科事典を目指している解説サイト(試験運用中)。想定読者は、AtCoderの黄色以上(レーティングで2000以上)。
- maspyのHP - maspyさんの解説ブログ。Pythonで実装されている。
- noshi91のメモ - noshi91さんの解説ブログ。C++で実装されている。データ構造に関する記事が多いのが特徴。
コンテストに向けた練習方法など
- AtCoder コンテストについてのtips - AtCoderにおけるコンテストの成績の解釈方法、参加に関するTips、プログラミングコンテストサイトの紹介について書かれている。
- AtCoderで青色(8割以上のIT企業でアルゴリズム力はカンスト)になったので青になるまでに必要そうなことをまとめる - kami634さんによる記事。AtCoderで、青コーダー(レーティング1600〜1999)を目指す人に向けた記事。コンテストの過去問の練習方法、問題を解くのに必要なアルゴリズム・データ構造、Twitterの利活用、便利なAtCoderの非公式ツールや外部ツールが紹介されている。学んだアルゴリズムをまとめサイトとしてアウトプットされているのも特徴。
- AtCoderでの勉強の仕方(コンテスト編) - AtCoder社長のchokudaiさんによる記事。プログラミングコンテストの参加を通して、アルゴリズムの学習を継続的に行う方法について解説している。
- AtCoderの問題を分類しました - AtCoderで開催されたコンテストについて、問題の分類とPythonでの解答例が示されている。AtCoder Beginner Contest(ABC)のABC001〜ABC158のA問題・B問題・C問題と、AtCoder Regular Contest(ARC)のARC001〜ARC103のA問題が対象となっている。動作環境は、Python3.4.3。
- 競技プログラミングの生産性向上についてとその方法【AtCoder】 - コンテストで高い順位を目指す、練習では実力を高めるために多くの問題を解くという観点から方法論や便利ツールを紹介した記事。
- 精進について - kyopro_friendsさんの練習に対する考え方や方法について書かれた記事。
- PythonでAtCoder青になるまで -Pythonで競プロやるときに気をつけること- - コンテストでPythonを利用している人に向けた練習方法が書かれている。他の言語を使っている人にも参考になる部分が多い。
- rng_58さんがオススメする学習方法 - rng_58さんが、問題を楽に解くための方針を身につける方法についてコメントしている。
- rng問題 - rng_58さんが作成した問題の難易度をTopcoderの基準で点数化している。また、有志によって難易度の評価やおすすめ問題の投票が行われている。
レーティングの分布に関する集計結果
有志により、レーティングの分布が集計されています。
- 年代別のAtCoderのレート分布 - 日本人ユーザの誕生年別の集計結果。2021年2月26日時点。
- 国ごとのAtCoderレート最大の人の色を世界地図に塗りました - 全世界のユーザを対象として、各国のレーティングの最高値に対応した色が世界地図に塗られている。2021年3月7日時点。
- (2021年4月時点)AtCoderの大学別レート分布 - 所属大学別に集計されている。2021年4月6日時点。
言語特性
- 【プログラミング言語速度比較】Collatz数列ベンチマークを言語別比較しよー! - RheoTommyさんによる記事。Collatz数列を題材に、各言語の実行速度を比較・分類している。
- 大好評!たった6種類の文法で塗り絵パズルが楽しめる、新感覚プログラミング言語「Painter Programming」を作った話 - E869120さん、square1001さんによって作成されたプログラミング言語「Painter Programming」の面白さ・楽しさ・奥深さを解説した記事。
問題作成と準備
問題を作成されるときには、以下の記事を参考にするとともに、定型作業を自動化するための補助ツールの利用を推奨いたします。
- AtCoderの作問体制 - 初代コンテストマネージャーのrng_58さんによって、2020年12月時点における作問体制が紹介されている。
- 競技プログラミングにおける作問テクニックを総整理! 〜初心者から経験者まで〜 - コンテストの問題を作りたい人に向けて、役割分担・作業工程の説明から、問題文・テストケースの作成手順とそれらの注意事項について網羅的にまとめられている。
- 競プロ作問チェックリスト (初心者向け) - 新規writerを対象として、各フェーズの注意事項がチェックリストの形式でまとめられている。
- About Problemsetting (for AtCoder and Codeforces) - dario2994さんが、Atcoder Grand Contest(AGC)やCodeforces Global Round(GR)での出題経験を通して得られた知見を体系的にまとめた記事。
- 問題文の添削例 - えびまさんが、問題文の不明瞭な点に対して添削を行っている。問題文を書く機会がある場合に、とても参考になると思われる。
- 集合 列 多重集合 違い - 集合・列・多重集合の違いと記法について解説した記事。これらの要素を含む問題を作成・公開する前に確認すると、回答者に誤解されにくい問題文を用意できると思われる。
- 競技プログラミングの作問環境構築(wiki設置編) - コンテストの問題の作成を希望する人に向けて、環境構築する手順をまとめた記事(全7回の予定)。
- 作問の失敗 判例集 - コンテストの問題を作成するときに陥りがちな失敗について、実例と対処方法がまとめられている。
- DEGwer式作問法 - DEGwerさんによる、問題の原案を量産するための方法論。記事を全文読むためには、購入する必要がある。
1年のふりかえり
- 競プロ流行語大賞2019 - 2019年に競技プログラミング界隈で流行った言い回し・語句に関する投票結果をランキング形式でまとめたツイート。
- 色変記事 Advent Calendar 2020 - dokinさんが企画した色変記事(所定のレーティングに到達したことを記念して書かれた記事)のアドベントカレンダー。
- Competitive Programming (1) Advent Calendar 2020 - 競技プログラミングに関する話題を扱ったアドベントカレンダー。
アルゴリズム、最適化手法を活用した事例
- 高校生がアルゴリズムとスパコンの力で、京都の碁盤目状道路を13.9%効率化した話 - 「碁盤目状道路の最適化」をテーマに、課題として思いついた背景・問題設定・分析と改善・効率化による意義を考察した記事。
- アルゴリズムで実社会を捉える~評価関数の作り方~ - 競技プログラミングにおけるゲームAI系のコンテストを題材に、筆者が評価関数を作成するときに意識していることを紹介した記事。評価関数の説明から、実社会の問題をアルゴリズムで解くときに人間の感覚を評価関数に反映させるための考え方やその意義について解説されている。
Qiitaアカウント
- けんちょん (Otsuki) - drkenさんのアカウント。初見では理解が難しい概念について、丁寧な解説かつ読みやすい記事が多数掲載されている。
オンラインプログラミング検定
- 第4回アルゴリズム実技検定を10/25(日)〜11/8(日)に開催 2021年の年間試験日程も発表 - AtCoderが開催するオンラインプログラミング検定「アルゴリズム実技検定」の日程を紹介した記事。同検定では、「1からプログラムを作成する能力を問う、実践を想定した日本初の検定」である点に特徴がある(過去問のリンク)。また、成績に応じた認定証が発行される。
部活、サークル、同好会
- 競技プログラミング部活動をはじめました - MMM公式ブログ - 株式会社MMMの「競技プログラミング部」に関する記事。部活動を始めたきっかけ、活動内容、部活動によるメリット、社内制度が紹介されている。
- 42nd KCLC - Kaisei Computer Lovers’ Club (KCLC)の有志によって作成された公式ホームページ。活動内容の紹介や新入生向けの学習教材が用意されている。
- Paken for beginners - 筑波大附属駒場中・高等学校の「中高パーソナル・コンピューター研究部(通称、Paken)」の新入生に向けて、部活の雰囲気やプログラミングの基礎を紹介している。
- HCPC 北海道大学競技プログラミングサークル - 北海道大学にある競技プログラミングの練習会・勉強会を行うサークル。活動記録に加えて、勉強会のスライドや開催されたコンテストの過去問が掲載されている。
- 「ゆるふわ競技プログラミングオンサイト at FORCIA #2」を開催しました - 初級〜中級競技プログラマを対象としたオンサイトイベントについて、主催者がイベント当日の内容・感想をまとめた記事。
開発に関心のある人向けの記事
- AtCoder学生ユーザー座談会「内定先、どうやって決めましたか?」 - AtCoderの学生ユーザ3人を対象に、AtCoderを始めたきっかけ・内定先の決め手・初任給など覆面座談会の内容を紹介した記事。
- AtCoder純粋培養緑コーダーが転職ACするまで - rcnesly17さんがAtCoderJobsを利用してIT業界未経験の状態から転職した経験談を紹介した記事。
- おいしいキャベツの育て方 - ngtkanaさんが、プログラミングを始めたきっかけ・AtCoderとの出会い・アルバイトを経て現職に至るまでの過程を紹介した記事。
- 競技プログラマーがWeb開発者の卵になるまでの軌跡 - Web開発に興味のある競技プログラマーに向けて、シンプルなWebアプリを作るために必要な知識・学習順序を紹介した記事。
- 競技プログラマーにおすすめするセキュリティエンジニアというお仕事 - 競技プログラミングの経験が仕事に活きるケースの一例が紹介されている記事。競技プログラミングが得意な人とセキュリティエンジニアの業務との関連について解説されている。
- 競技プログラミング、日本の大会参加者急増 採用の指標に - 競技プログラミングの経験・実績が採用に活用されていることを紹介した記事。注: 全文を読むには、会員登録が必要。
- 競技プログラミングの在り方 ~「競技プログラミングを我々が終わらせる」を受けて~ - IT業界への就職と競技プログラミングとの関係について、賛否両論を踏まえてchokudaiさんの意見・スタンスが書かれた記事。また、AtCoderユーザが就職において評価されやすい能力の説明に加えて、業務に近い内容を扱ったコンテストが紹介されている。
- 社会に出て感じたギャップTOP10 - kyuridenamidaさんがソフトウェア開発会社に就職する前後で感じたギャップをランキング形式で紹介したスライド資料。
- 純粋培養競技プログラマが社会に出てみた感想 - 学生時代の多くを競技プログラミングに捧げたtsutajさんが、就職1年目で身につけたことやできるようになったことを紹介した記事。
- 土木とITをつないだプログラミングコンテストという選択肢–鹿島建設とAtCoderの新たな挑戦 - 土木業界におけるITエンジニアの必要性・需要・将来性と、プログラミングコンテストを通したIT人材の確保に向けた取り組みを紹介した記事。
- フューチャーでjobsバイト、競プロ入社を経験して - 競技プログラミングの経験が就業やITコンサルティング業務に役立った事例を紹介した記事。
書籍、オンラインブック
書籍
- アルゴリズム図鑑 絵で見てわかる26のアルゴリズム - アルゴリズムが絵で説明されており、雰囲気をつかむのに向いている。コードを書くときは、別の書籍を読む必要がある。スマートフォンアプリ(Android、iOS)だと無料で読むことができる。
- アルゴリズム ビジュアル大事典 - アルゴリズム・データ構造の計算方法と結果をビジュアル的に捉えることができる書籍。スマートフォンのカメラで、QRコードにアクセスするとアルゴリズム・データ構造に関するアニメーションが閲覧できるページもある。
- なっとく!アルゴリズム - 解説の丁寧さと図の豊富さが特徴。注: サンプルコードがPython2(公式のサポート終了)で書かれているため、print文などはPython3の書き方を調べる必要がある。
- 最強最速アルゴリズマー養成講座 プログラミングコンテストTopCoder攻略ガイド - 通称、チーター本。著者がAtCoder社長chokudaiさんの書籍。
- プログラミングコンテスト攻略のためのアルゴリズムとデータ構造 - 通称、螺旋本。後述する蟻本と比べると初心者向け。基本的なアルゴリズムが詳しく解説されている。
- 問題解決力を鍛える!アルゴリズムとデータ構造 - drkenさんによる書籍(通称、けんちょん本)。後述する蟻本を読み進めるための基礎が学べる。内容や難易度の詳細はブログを参照されたい。また、書籍に掲載されているソースコードや章末問題の略解がGitHubにアップロードされている。
- アルゴリズム実技検定 公式テキスト[エントリー~中級編] - betrue12さんとkenkooooさんによる書籍(通称、PAST本)。「アルゴリズム実技検定(PAST)」初の公式テキスト。書籍の特徴・解説の範囲・使用言語などについては、著者のブログを参照されたい。また、書籍に掲載されている解答例のソースコードがGitHubで公開されている。
- プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ - 通称、蟻本。初級編からかなり難しいが、典型的なアルゴリズムと考え方が収録されている。解説がとてもシンプル、かつ、第2版発行からやや時間が経過していることから、Web記事・解説ブログとともに参照することを推奨。
オンラインブック
- atcoder-rust-resources - コンテストにRustで参加するための資料集。現在は、日本語のみ対応。
オンラインイベント、公開講座などの資料集
- アルゴリズム・データ構造を語る会 - 有志が主催するアルゴリズムやデータ構造のトークイベント(通称: ア・デの会)のスライド・動画をまとめたリンク集。
- data-structures - 有志によって、データ構造に関する知見がまとめられている記事集。データ構造の説明と実装に必要な要件が簡潔に記載されている。また、C++やRustを用いた実装例やコンテストでの出題例も掲載されている。
Discord
- 競プロer集会所 - mencottonさんによって管理・運営されている、競技プログラミングの話題に特化した会話ができるグループ。2020年10月時点で500人以上が参加している。有志による「質問への回答」や「記事の紹介」など多数のチャンネルが用意されている。
YouTube
生放送、動画配信に関するTips
- 競技プログラミングやCTFの動画配信/生放送でのTips - kurenaifさんが、YouTubeの生放送や動画配信の経験から得られたTipsを紹介した記事。
- 競プロ配信をするときの個人情報漏洩対策の注意点 (AtCoder) - 競技プログラミングの配信に興味がある方や実際に配信している方に向けて、実名・年齢・所属などの個人情報が漏洩する可能性と、その対策を紹介した記事。
チャンネル
- AtCoder Live - AtCoderの公式チャンネル。
- Gennady Korotkevich - 世界最強の競技プログラマーであるtouristさんのチャンネル。
- heno 239 - レッドコーダー(競技プログラマーとして世界最高峰の実力の持ち主であることを示す)のheno239さんのチャンネル。過去問の早解き、2人で1行ずつ交互にコーディングしてACを目指す動画などが公開されている。
- kurenaif - kurenaifさんのチャンネル。競技プログラミングの初心者に対して、コーチングを行いながら考察を進める過程を紹介した動画が公開されている。
- Rute _ - Ruteさんのチャンネル。ABC126以降のA問題を対象として、解説とPython3による実装が行われている。
- Tozan Southerpacks Redcoder レッドコーダー - レッドコーダーのtozangezanさんのチャンネル。アルゴリズムやコンテスト後の解説が英語で行われている。
- えびまラボ - コンテストのwriterとして長年活躍されているえびまさんのチャンネル。コンテストやアルゴリズムなどに関する「ゆっくり解説」が公開されている。
- 糟屋もふ - KasuyaMofuさんのチャンネル。C++入門 AtCoder Programming Guide for beginners (APG4b)を解く動画などが公開されている。
- かつっぱ競プロ - AtCoderでレッドコーダーのcatupperさんのチャンネル。コンテストの実況動画が公開されている。
- 蟹江もなみ - kanipanunuさんのチャンネル。コンテストの過去問を解く動画が公開されている。
- きりみんちゃん kirimin-chan - kiriminさんのチャンネル。競技プログラミングやライブコーディングだけでなく、幅広い話題の動画が公開されている。
- ことり兄貴【プログラマ】 - KotoriAnikiさんのチャンネル。コンテストの過去問を解く動画などが公開されている。
- 坂道輪の競プロ - RinSakamichiさんのチャンネル。コンテスト終了後に、問題の解答や感想を配信している。
- じょえチャンネル - xuzijian629さんのチャンネル。斬新な企画が数多く公開されている。
- 高井茅乃と毒芽えるのバ美nIQ - takaichinoさんのチャンネル。コンテストの過去問を解いたり、反省会をしたりしている。
- どきんちゃんねる - dokinさんのチャンネル。入門者・初心者向けに、問題の考察・C++での実装過程が丁寧に解説されている。
- ナス太郎 - DFNasutarouさんのチャンネル。1問あたり15分以内で解き続ける動画などが公開されている。
- ななみつき - Nanamitsukiさんのチャンネル。コンテストの過去問を解く動画などが公開されている。
- 文月このは - kono_julyさんのチャンネル。コンテストの過去問を解く動画などが公開されている。
感想会、講座、講演、対談
- AtCoder Heuristic Contest 001 感想会 - AtCoder Heuristic Contest 001のオンライン感想会。参加者は、writerのwataさん、同コンテスト2位のymatsuxさん、AtCoder社長で世界大会での上位入賞経験もあるchokudaiさん。ヒューリスティックコンテストでよく使われる手法、点数を上げるためのテクニック、アルゴリズムコンテストとの関連性などが紹介されている。
- これから身につけるべきITスキルとは? - chokudaiさんと就活系YouTuberが、今後必要なITスキルについて対談している動画。ITスキルが求められる理由、意識的にプログラミングを学ぶ意義・必要性、今後減る・増える仕事について語られている。
- プログラミングコンテストのすゝめ 〜競プロはキャリアであり、趣味でもあり、学びである〜 - 2020年7月に開催された日本最大の学生向けテックカンファレンス「技育祭」(ぎいくさい)の講演動画。chokudaiさんが、競技プログラミングの面白さ・楽しさを解説している。
- 「レッドコーダーの作り方」競プロに活かす㊙私生活 - iwiwiさんが、オンサイトイベントの参加者からプログラミングコンテスト、私生活、研究に関する質問に対して回答している動画。
- ワンランク上に行くプロコン講座 - chokudaiさんによるトークライブ。競技プログラミングの典型的な問題に対して、上位陣が一瞬で解ける理由と考え方のコツを解説している。
プロモーションビデオなど
- AtCoderってなんだし? - chokudaiさんが登場するAGCのCM。
- AtCoder 日本人 レーティング TOP10 2016-2019 - アクティブユーザを対象とした日本人上位10人のレーティングの変遷を紹介している。全世界版もある。
- AtCoderの始め方。競プロに興味はあるけどやっていないという方へ。 - 教育系エンジニアによるAtCoderの紹介動画。競技プログラミングの解説に加えて、便利なサイト・ツールが紹介されている。
- AtCoder 布教 PV - 有志によるAtCoderのプロモーションビデオ。特に、競技プログラミングを始めようと思っている人や周囲に布教したい人におすすめ。
- 2分で始める競技プログラミング【高井茅乃 #31】 - 競技プログラミングの概説、AtCoderのアカウント登録、練習問題を解く方法が2分で紹介されている。
ニコニコ動画
- AtCoder 参加してみた!【ゆっくり実況】 - chechecheさんのコンテスト参加日記。
番組アーカイブ
- 【ローランド×金言】ビジネスは「世界一から逆算せよ」 - 起業家のプレゼンに対して、ローランドさんや著名な経営者がビジネスのヒントを贈る番組「Greatest Hints」のアーカイブ。chokudaiさんがAtCoderの事業内容について、対外的に発信している(38:53頃から出演)。注: 動画を全て視聴するには、会員登録が必要な場合がある。
- 未経験者のアナタもハマる?競技プログラミング「AtCoder」って何だ?【理系通信】 - テレビ東京総合ニュースサイト(テレ東NEWS)のサイエンスニュースで、AtCoderが紹介されている。番組ディレクターが、実際のコンテストで出題された問題を解きながら競技プログラミングの魅力を伝えるとともに、企業における高度IT人材の需要などについて取材している。
- 逆転人生を描け!プログラミングの黄金比 - 経済トークバラエティ番組「OFFRECO.」のアーカイブ。chokudaiさんが出演しており、ビジネスにおけるプログラミングの必要性についてコメントしている。注: 動画を全て視聴するには、会員登録が必要な場合がある。