カメヲラボ

主にプログラミングとお勉強全般について書いてます

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

競技プログラミングの鉄則 ~アルゴリズム力と思考力を高める77の技術~ (Compass Booksシリーズ)

はじめに

競技プログラミングの鉄則』という書籍が9月16日に発売されます.「これは!」と思ったので,少しの紹介と個人的な感想を書きます.尚,書籍の紹介に関しては特に依頼されたわけではありません.単純に一人の読者として感想ですのでご了承ください。

この記事を書いている人

全くの競プロ素人というわけではありません.主にヒューリスティック問題のコンテストに好んで参加しています.また,本ブログ上部にあるようにいくらか本を書いたり出版に関わったりもしています.つまり,ヒューリスティック好き本を少し書いたことがある人の感想ということです.

読み方

本書の読み方は自由ですが,14頁に「本書の進め方」という頁がありますので,まずここを読むのがベストかと思います.私は目次を見た瞬間「7章ヒューリスティック」を読みたくて少し迷いましたが我慢して最初から読みました.個人的にはどの技術書でも「はじめに」の頁が一番好きで,ここに著者の想いが詰まっていることが多いので,まず最初に読むことにしています.

個人的なほほーんポイント

競プロに関しては普段からTwitterでなんとなくタイムラインを眺めているので,ワードそのものは何となく知っていたのですが,改めてほほーんと思ったことを挙げます.

  • いもす法(2章):遠い昔に差分の累積和がカシコイということを教えてもらったのだけど,今ではその辺が一般化されて「いもす法」と名前がついているのを知らなかった.
  • 二分探索・動的計画法(3・4章):結構細かく分類されていて,ざっくりとしか理解していないと5分とか10分で解くのが難しそうだということがわかった.
  • 考察テクニック(6章):もちろん他の書籍でも似たような記述はあるのだけど,これが1つの章として存在していることがとても重要に感じた.テクニック的なことに限られているけれども,もっと基本的なアプローチ方法とかメンタル面にも触れておいてもらえるとよりありがたいかな.…と思ったら,10章の頭(410頁)と終章(456頁)に欲しい内容が書かれていた.これは素晴らしい!
  • ヒューリスティック(7章):ほほーんはない.…好き😚
  • クエリ処理(8章):この手の問題に出くわしたことが今までにないので,今知って良かった.要勉強!
  • グラフアルゴリズム(9章):ヒューリスティックでめっちゃ使う気がするので,ここはとても重要.

細かい点では他にもたくさんありますが,皆さんも本書に目を通してほほーんポイントを見つけてください(無かったわーという人はかなり上級者だと思います).

オンラインテスト

atcoder.jp

https://atcoder.jp/contests/tessoku-book で,本書に解説されている問題と応用問題をテストすることができます.AtCoderの形式なので,コンテストに参加したことある人は何ら問題ないと思います.AtCoderは使い勝手がかなり良いので,初めての人でも大丈夫でしょう.

最後に

「はじめに」とか「謝辞」の頁を読んで,著者の情熱を感じました.章のまとめ方や図表の使い方を見ると,本書を仕上げるためのバランス取り相当入念に行ったのだろうということがわかります.本当によくまとまってます.あまりにベタ褒めだと良くないよなーとは思いながら読み進め,この文章も書いていたのですが,やっぱり良いものは良いんですよ.というわけで,本書の紹介と感想はこれくらいにしておきます.とにかく一度手に取ってご覧になることをおすすめします.