Haskellで戦う競技プログラミング
BOOTHおよびとらのあなで(委託)販売中!
【電子版単体】Haskellで戦う競技プログラミング - だめぽラボ - BOOTH
【紙+電子】Haskellで戦う競技プログラミング - だめぽラボ - BOOTH
- 紙書籍+電子版 (PDF) 購入後ダウンロード可能
- 1000円(送料別)
【紙+電子】Haskellで戦う競技プログラミング - とらのあな全年齢向け通販
- 紙書籍+電子版 (PDF) ダウンロードカード付き
- 1000円(送料別)
概要
Haskellで競技プログラミングをやる本です。
競プロ向けのプログラムの書き方のほか、高速化のノウハウも扱っています。
目次
- はじめに……ii
- 第1章 入出力……1
- 1.1 入力の基本……1
- 1.2
ByteString
を使った入力の高速化……6
- 1.3 出力の基本……9
- 1.4 発展:
ByteString.Builder
を使った出力の高速化……10
- 第2章 全探索……12
- 2.1 リスト内包表記の例……12
- 2.2 リストモナドと非決定的計算……14
- 第3章 モジュラー計算……17
- 3.1 モジュラー計算……17
- 3.2 整数型の幅に関する注意……18
- 3.3 逆数……18
- 3.4 newtypeの利用……21
- 3.5 最速を目指す人のためのモジュラー計算の高速化テクニック……23
- 3.6 法が入力の一部として与えられる場合……26
- 第4章 正格評価……28
- 4.1 Haskellの評価戦略……28
- 4.2 正格性解析……29
- 4.3 正格な束縛:
BangPatterns
……29
- 4.4 Weak Head Normal Form……30
- 4.5 正格な関数呼び出し……31
- 4.6 正格なデータ構造……32
- 4.7 内部で正格評価する関数……33
- 4.8 Unbox化……33
- 第5章
Vector
……36
- 5.1 不変配列:
VU.Vector
……37
- 5.2 可変配列:
VUM.MVector
……47
- 5.3 他の
Vector
モジュールについて……53
- 第6章 手続き型プログラミング……56
- 6.1 繰り返し……56
- 6.2 条件分岐……59
- 6.3 変数……61
- 6.4 例題:エラトステネスの篩……63
- 第7章 動的計画法……66
- 7.1 例題:フィボナッチ数……66
- 7.2 例題:ナップサック問題……70
- 7.3 2次元DP/例題:最長共通部分列……73
- 参考文献……79
本文中のリンク
「だめぽラボ」のページトップへ