競技プログラミングの鉄則の表紙

競技プログラミングの鉄則(キョウギプログラミングノテッソク)

アルゴリズム力と思考力を高める 77 の技術

プログラミング
著者:
米田優峻(ヨネダ マサタカ)
出版社:
マイナビ出版
出版日:
2022年09月16日頃
ISBN:
9784839977504
在庫:
在庫あり
5(5 件 / 楽天ブックス)
中級者向け
アルゴリズムデータ構造競技プログラミング動的計画法二分探索数学的問題グラフアルゴリズムヒューリスティック最適化考察テクニック演習問題

なぜ注目されているか

言及数
23
総合27 4 ランクダウン 77 件の言及
出版前出版日071320222023202420252026

書籍紹介

競技プログラミング (競プロ) は、問題を解くことでプログラミング能力を競う大会です。本書では、競プロで必要なアルゴリズム・データ構造・考察テクニックを丁寧に解説します。さらに、知識を定着させるための例題・演習問題が 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 で問題を解き始めたものの、ある難易度帯から先に進めなくなる。競技プログラミングの学習で誰もが突き当たるこの壁の正体は、多くの場合ひらめきの不足ではなく、知っていれば解ける「型」の穴です。『競技プログラミングの鉄則 アルゴリズム力と思考力を高める 77 の技術』 (マイナビ出版、 2022 年 9 月刊) は、その型を 77 のテクニックとして体系化した一冊です。著者の米田優峻氏は「 E869120 」の名で知られる競技者で、 AtCoder 最高ランクの赤 (レッドコーダー) 、国際情報オリンピックの金メダルを 3 度獲得し、「競プロ典型 90 問」の企画者でもあります。トップ層が実戦で使っている道具箱を、初中級者が登れる階段に並べ直したのが本書です。

10 章 + 終章の構成と演習 153 問

構成は序章の競技プログラミング入門から始まり、 計算量 、累積和、二分探索動的計画法、数学的問題、考察テクニック、ヒューリスティック、データ構造とクエリ処理、グラフアルゴリズム、総合問題という 10 章 + 終章の積み上げです。特徴は徹底した演習主導にあり、例題・演習問題は 153 問、全問題が自動採点システムに対応しているため、読んだ型をその場で提出して正誤を確かめられます。フルカラーの図が 320 点超と、アルゴリズムの動きを紙面で追える視覚的な作りも独学の負担を下げています。スコアを競う形式の「ヒューリスティック」に章を割いているのは類書に少ない特色で、 AtCoder のヒューリスティックコンテストに興味がある人の最初の足がかりにもなります。

蟻本・アルゴリズム×数学との使い分け

競プロの定番書として先行する『プログラミングコンテストチャレンジブック』 (通称・蟻本、 2012 年) と比べると、役割の違いは明確です。蟻本は網羅性と到達点の高さで長く支持されてきましたが、序盤から要求水準が高く、初中級者には勾配が急です。本書はそこへ至る手前の階段を丁寧に刻んでおり、演習と自動採点で足場を固めながら登れます。また同じ著者の『問題解決のための「アルゴリズム×数学」が基礎からしっかり身につく本』 (2021 年) は、アルゴリズムを支える数学の土台を作る基礎編という関係で、数学に不安があればあちらを先に、コンテストで勝つ型を鍛えたければ本書から、という分岐になります。

前提となるプログラミング経験と実務への効き目

前提は、 C++Python などで入出力・配列・ループを書ける程度のプログラミング経験です。文法の解説はないため、完全な初心者は言語入門を 1 冊挟んでください。また本書は競技という文脈に最適化されているので、業務システムの設計力やフレームワークの知識を直接得る本ではありません。それでも、計算量を見積もって解法を選ぶ訓練、動的計画法やグラフを「使える型」として身につける経験は、コーディング面接や性能問題の解決といった実務の場面に確実に持ち出せます。

買って元が取れる読者

買って元が取れるのは、 AtCoder のレーティングを本気で上げたい学生・社会人、コーディング面接対策としてアルゴリズムを 問題演習 で固めたい人、そして「 アルゴリズムの本 は読んだが問題が解けるようにならない」経験をした人です。読む本ではなく解く本として設計されているため、 1 問ずつ提出しながら進めれば、 77 の型がそのまま自分の引き出しになります。競プロの学習投資として、迷ったらまずこれという安定の選択肢です。

言及 Qiita 記事 (65 件)

言及 Zenn 記事 (4 件)

この本に興味がある方におすすめ

この本に関連

米田優峻 の他の書籍

関連記事

関連用語

共有:Xはてブ