競技プログラミングの鉄則(キョウギプログラミングノテッソク)
アルゴリズム力と思考力を高める 77 の技術
- 著者:
- 米田優峻(ヨネダ マサタカ)
- 出版社:
- マイナビ出版
- 出版日:
- 2022年09月16日頃
- ISBN:
- 9784839977504
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
競技プログラミング (競プロ) は、問題を解くことでプログラミング能力を競う大会です。本書では、競プロで必要なアルゴリズム・データ構造・考察テクニックを丁寧に解説します。さらに、知識を定着させるための例題・演習問題が 150 問以上掲載されています。
本書は、競プロのコンテストで勝ちたい、アルゴリズムを本格的に学びたい、技術力向上に繋げたいなど、様々な目的で利用できるものとなっています。
[本書の特徴]
・競プロで必要な 77 個のテクニックを網羅
・ 320 点超のフルカラーの図でわかりやすく解説
・知識を身に付ける演習問題 153 問
・全問題が「自動採点システム」に対応
・新傾向の「ヒューリスティック・最適化」も解説
[本書の構成]
序章 競技プログラミング入門
第 1 章 アルゴリズムと計算量
第 2 章 累積和
第 3 章 二分探索
第 4 章 動的計画法
第 5 章 数学的問題
第 6 章 考察テクニック
第 7 章 ヒューリスティック
第 8 章 データ構造とクエリ処理
第 9 章 グラフアルゴリズム
第 10 章 総合問題
終章 さらに上達するには
[本書で扱うトピック (抜粋) ]
全探索/ 2 進法/一次元の累積和/二次元の累積和/配列の二分探索/答えで二分探索/しゃくとり法/半分全列挙/部分和問題/ナップザック問題/ビット DP /最長増加部分列問題/素数判定法/ユークリッドの互除法/繰り返し二乗法/包除原理/ゲーム問題/偶奇を考える/一手先を考える/後ろから考える/山登り法/焼きなまし法/ビームサーチ/スタック/キュー/優先度付きキュー/連想配列/文字列のハッシュ/ダブリング/セグメント木/深さ優先探索/幅優先探索/ダイクストラ法/ Union-Find /最小全域木問題/最大フロー問題/二部マッチング問題/ほか多数
序章 競技プログラミング入門
第 1 章 アルゴリズムと計算量
第 2 章 累積和
第 3 章 二分探索
第 4 章 動的計画法
第 5 章 数学的問題
第 6 章 考察テクニック
第 7 章 ヒューリスティック
第 8 章 データ構造とクエリ処理
第 9 章 グラフアルゴリズム
第 10 章 総合問題
終章 さらに上達するには
技書の森解説
AtCoder で問題を解き始めたものの、ある難易度帯で壁にぶつかって伸び悩む。競技プログラミングではこの停滞を「色の壁」と呼びますが、多くの場合その原因は知識の穴です。本書は AtCoder で赤コーダー (レーティング最上位帯) として知られる著者 E869120 (米田優峻) が、競プロに必要なアルゴリズムと思考法を 77 の技術として体系的に整理したものです。
全探索、動的計画法、グラフ、数学的考察、ヒューリスティックまで幅広い領域をカバーしつつ、各技術には対応する練習問題が AtCoder 上に用意されており、読んだ直後に手を動かして定着させる設計になっています。「蟻本」 (プログラミングコンテストチャレンジブック) と比べると、より段階的に難易度が上がる構成で、灰色〜緑色帯のプレイヤーが水色以上を目指すときの地図として機能します。
注意すべきは、本書は「問題をどう解くか」の思考過程を重視しているため、言語の文法やライブラリの使い方は前提知識として要求される点です。少なくとも C++ か Python で基本的な入出力やデータ構造を扱える状態で読み始めると、学習効率が最大化されます。アルゴリズム力を底上げしたい学生やエンジニアにとって、手元に置いて繰り返し参照する実用書です。
言及 Qiita 記事 (65 件)
エンジニアに読んで欲しい技術書90選
♡ 1956技術書, 書籍, 新人プログラマ応援プログラミング初心者の40代おじさんが3年半かけてAtCoder水色になった話(色変記事)
♡ 487AtCoder, ポエム, 競技プログラミング[2023年1月版]競技プログラミングを始めたばかりの人にオススメの問題集
♡ 358競技プログラミングSE 2年目で読んだ技術書45冊+α
♡ 284技術書, Se, 新人プログラマ応援, 新人プログラマ応援_記事投稿キャンペーンSE 1年目で読んだ技術書68冊+α
♡ 275Java, 初心者, 技術書, Se高校の 2 年間で情報オリンピック (JOI) の二次予選を突破する方法を大公開! 〜 JOI の地域格差に挑んだ軌跡の記録 〜
♡ 115アルゴリズム, AtCoder, 教育, 競技プログラミング, 情報オリンピック文系大学生がプログラミング未経験から5ヶ月で入緑した話【AtCoder】
♡ 107Python, AtCoder, 初心者, 競技プログラミングプログラミング完全未経験から始める!競技プログラミング入門ガイド
♡ 88AtCoder, 初心者, 競プロ, 未経験【競プロ】【入緑】AtCoder続けて良かったこと
♡ 88AtCoder, 競技プログラミング40代で Rust を触り始めて 1年で AtCoder に入水できた件
♡ 81Rust, AtCoder, ポエム, 競技プログラミング, 色変