水になった、色変記事

入水しました!!!(激遅)

f:id:matumoto_h:20210825131407p:plain

当時高校2年生の2019/2/3に始めてから水色になることができました。

茶色の期間が長く、伸び悩んでいた時期もありましたがなんとか水色に到達して感無量です。

なぜか、茶から緑になるまでよりも緑から水色になるまでの方が早かったりします。なぜ?????

それはともかく、最近のパフォーマンスが右肩上がりで嬉しいですね。このまま上がっていけたらさらに嬉しいです。

さて、せっかくの色変記事なので水色になるまでやったこととかをつらつらと書いていこうと思います。

やったこと

およそ1100ACはしました。若干ABCの問題が多いような気がします。

f:id:matumoto_h:20210825133941p:plain

学んだことの列挙

今まで学んだアルゴリズム/データ構造たちを列挙していきます。

  • データ構造
    • 累積和/二次元累積和
    • fenwick木(Binary Indexed Tree)+ $\alpha$(区間取得、二次元)
    • セグメント木/遅延セグメント木(ACL
    • UnionFind/重みつきUnionFind
    • mexset
    • dynamic conectivity
  • グラフ
    • ベルマンフォード法
    • ダイクストラ
    • ワーシャルフロイド法
    • オイラーツアー
    • BFS/DFS + $\alpha$ (グリッドグラフ上のBFS、01BFS)
    • 橋、間接点列挙(lowlink)
    • 強連結成分分解
    • トポロジカルソート
    • 最小共通祖先
    • 巡回セールスマン問題(これはbitDP)
  • 数学
  • 文字列
    • ローリングハッシュ/二次元ローリングハッシュ
  • その他
    • 二分探索
    • 座標圧縮
    • 転倒数
    • 多少の幾何(回転行列など)
    • 多少のDP(区間DPなど)

こんなところでしょうか。 なんだか学んだことの自慢をしているようになってしまった感は多少あります。

データ構造についての知識は他の1200付近の方よりも多い気はします。(おそらく)

心持ち

その代わりに算数的な直感や数学的な考察が苦手で、なるべく知識を使って脊髄で問題を殴れる(・_・)-=つ ようにするように心がけてきました。

知ってる問題が出たら、はいはいはいはいみたいなことを言いながらライブラリを貼ってAC!みたいなことが多い気がします。

他にもPythonをABCのA、B、C問題をACできる程度にはやっておくとPythonの便利な関数、counterとかがあってそれをc++に持ってきたりもしました。

お勧めしたいこと

スニペット

僕はVSCode勢なのですが、スニペットを使うとAtCoderライフが快適になります。

テンプレートやよく使うアルゴリズムスニペットにしておくとかなりうれしいです。脊髄から取り出してそのまま殴れます。

強い人のライブラリをパクる

パクりましょう。

貼るだけ。

強い人の提出をパクる

いい感じのテンプレートを置いてくれています。

パクりましょう。

強い人のTwitterを見る

もし自分と同じ考えだったときにテンションが上がります。

拡張機能を入れる

ユーザースクリプトなどを入れてAtCoderライフをより快適にできます。

コンテスト中でのパフォーマンス予測や、どのレートの人が何%どの問題を解いているかなどが分かるようになります。

自分の環境を整える

スニペットと似たようなニュアンスです。

デバッグなどが早いとうれしくなります。

自分の場合はデバッグ用のマクロを組んでいるのですが、かなり助かっています。

あとがき

ここまで見てくださってありがとうございました。 今後も精進に励んでいきたいと思います。

青になります!!