最強最速アルゴリズムマー養成講座


最強最速アルゴリズマー養成講座 プログラミングコンテストTopCoder攻略ガイド


ソフトバンククリエイティブ


著者:高橋直大


はじめに
準備篇

第1章 プログラミングコンテストって?
プログラミングコンテストとは?
コンテストに参加する利点
初心プログラマーに最適な競技プログラミング

第2章 TopCoderに参加しよう
TopCoderのシステム
 TopCoder SRMとは
 SRMの構成
 SRMのレーティング
TopCoderへの登録方法
 TopCoderへの登録
SRMへチャレンジ
 SRMへの参加方法
SRM参加のポイント
 問題の読み方
 便利な補助ツール

第3章 最低限必要な知識をつけよう!
絶対に必要なプログラミング能力
 プログラミングコンテストに必要な知識
 if、else
 for
 配列
 提出フォーマット
追加で必要なプログラミング知識
 覚えておくと便利な知識
 ソート
 文字列
 連想配列

初級編
第4章 シミュレーション
 キウイジュース
 問題の解説
 応用技1
 応用技2

第5章 全探索
みんなが楽しいパーティ
 問題の解説
 応用技
 数学的問題に対する全探索
暗号文
 問題の解説
 応用技
おもしろい数学
 問題の解説
 応用技
 さまざまな種類の全探索
山本山
 問題の解説
 強固なイメージをもつための「グラフ」
友達の数
 問題の解説
さまざまなタイプの全探索
 さなざなばタイプの探索
 深さ優先探索と幅優先探索
 たいていの物事はグラフに変換できる
 ダイクストラ法
 枝刈り
 探索の実装
 深さ優先探索のイメージ
 幅優先探索のイメージ
 データ構造
 再帰関数
 深さ優先探索の実装
 幅優先探索の実装
 深さ優先探索と幅優先探索の違い
壊れたロボット
 問題の解説
迷路づくり名人
 問題の解説
 bit全探索
ナンバーマジック
 問題の解説1
 問題の解説2
 問題の解説3

中級編
第6章 計算量
計算時間、メモリ使用量を予測するために
 プログラム実行に関する制約事項と計算量
 時間計算量
 計算量の計算が難しいケース
 計算量の大きい関数を呼びだしている場合
 空間計算量

第7章 動的計画法・メモ化
動的計画法の基本
 経路の探索
 探索を使った解法
 数学的解法
 メモ化再帰を使った解法
 動的計画法らしい解法
 ナップザック問題
 探索を使った解法
 メモ化再帰を使った解法
 動的計画法を使った解法
 動的計画法
会社の組織と給与
 問題の解説(探索)
 問題の解説(動的計画法)
仲の悪い隣人たち
 問題の解説(動的計画法)
キングとナイト
 問題の解説(動的計画法)
ビジネス握手
 問題の解説

第8章 探索範囲を狭めるアルゴリズム
カラフルボックス&ボール
 問題の解説
貪欲法
 動的計画法は万能なのか
 なじみ深いようで意外と難しい「貪欲法」
株式投資シミュレーション
 問題の解説
バッチシステム
 問題の解説
自動車ローン
 問題の解説
数学的アプローチ円の国家群
 問題の解説
ハミルトン路
 問題の解説
上級編

第9章 応用問題
バイナリフリップ
 問題の解説1
 問題の解説2
 問題の解説3
 問題の解説4
 問題の解説5
 この問題のまとめ
カントールの塵
 問題の解説
 この問題のまとめ
Not Two
 問題の解説
 この問題のまとめ
棒の切断
 問題の解説
 二分探索の終了条件について
 この問題のまとめ
無限数列
 問題の解説1
 問題の解説2
 問題の解説3
 問題の解説4
 問題の解説5
 問題の解説6
 この問題のまとめ
床板
 問題の解説1
 問題の解説2
 この問題のまとめ

第10章 整列
連結判定
 単純な探索を利用した連結判定
 Union-Find
有向グラフと無向グラフ重み付きグラフ
 重み付きグラフ
 重み付きグラフの最短経路問題
ダイクストラ法
 ダイクストラ法
 優先度付きキュー
 これまで説明した動的計画法とダイクストラ法の大きな違い
最小全域木
 最小全域木
 愚直な全探索
 プリム法
 クラスカル法
辺にさまざまな情報があるグラフ
 辺にさまざまな情報があるグラフ
 頂点を増やすことによって簡単に表せるグラフ

第11章 数学問題対策
素数
 素数
 素数判定
 O√nの方針
 その他の素数判定法
 素数列挙
最大公約数、最小公倍数
 最大公約数、最小公倍数
 愚直な実装
 ユークリッドの互除法
 拡張ユークリッドの互除法

索引
TopCoder問題一覧
カテゴリ別問題一覧
難易度別問題一覧

書籍目次

Posted by shi-n