アルゴリズム

プロコン
コーディングイディオム
非厳密アルゴリズム
アルゴリズムの構築法

概要

  • 僕ははむこです。
  • アルゴリズムよく知らない人間の「一から自分で作ります!」ってメッチャ嫌な予感しません?
    • 世の中には必要になってから勉強すればいいことと、知らないとそもそもどうしようもないことがあって、アルゴリズムとデータ構造は後者に分類されると思います。なぜなら、それらを知らない限りそれを使って解ける問題を想像し得ないからです。
  • 競プロをやってるメリットの一つとして, 罪悪感なくコードを書ける (今自分が書いているコードが効率的だというある程度の自信を持って書ける)というのがある

僕が強くなるために

  • ランダムにアルゴリズムを立てず、証明を与える癖が必要。
    • 「仮説が立てられない」「仮説を立てても証明できない」「証明できそうな仮説なのかどうかを検証できない」のうち、今ボトルネックなのは「仮説を立てても証明できない」部分
    • 仮説をランダムに立てては反例を考えて、反例が思いつかなければとりあえず実装するみたいになって根本的に意味不明なことをする羽目になるみたいな
    • 高校の頃は証明問題を解いて訓練していたけど、アルゴリズムの証明を数学的にがんばりましょう!みたいなこと言ってくれる人は少ないし、実装の観点でどうしたら動くかを理解してればまあええやろみたいな甘えを正す機会が少ない
    • まあ僕は証明しても楽しくないのでやりたくないんですが。。

参考

目次