ぽへ

ぽへ

競プロnoobがJulia縛りでAtCoder青色に

なったので投稿する

概要

  • ほぼJuliaのみ(現状制約の問題で解答不可能な過去問を除く、という意味)を用いてAtCoderでレート1600に到達しました。
  • 恐らく先人が存在しないと思うので、マイルストーンとして「Juliaを用いて」「青色を目指す」という読者を想定した記事を書くことにしようとしましたが、内容が薄すぎるため実質ただの報告となります。
  • あまりにも技術的な要素がないため、はてなに載せることにしました。
  • 前回の記事 qiita.com

進捗

f:id:yosutecon:20200503015110p:plain

  • つれぇ

f:id:yosutecon:20200503020149p:plain

  • なんと入水段階(363AC)の3倍強!
  • 半分くらいは虚無埋めでの水増しですが、だとしても残り半分はこれまで未解決だった問題を解いたことになるので、水色時点の倍は解いている感じだと思います。
  • 64MBに時々Kotlinを使ったりもしましたが、結局まだJuliaでそんなに困っていないので、言語の乗り換えは考えていません。
  • 言語更改で選択画面のJuliaとKotlinが並ぶようになったのが地味なうれしみポイントだったりします。

水色時代の出来事

  • 参加者の激増(2回)とABCのルール変更
    • 一回目の激増寸前に水色になった層、参加者増加による負の影響を一番受けてるような気がするんですが、どうですか?
  • JuliaがAtCoder界隈で話題に
    • 陳腐化したので消してしまったのですが、Juliaが話題になった根底には私の書いた記事の内容があったようです。
    • 今思えば扇動的な表現も多かったなと思いますが、別に私が悪いとは思っていません。
  • Juliaで遊ぶ人の増加
    • 某やべーやつにOwnerを抜かれたりもしました。
    • 一切面識はありませんし、あちらは私の存在を認知していないと思いますが、私はずっと見ていますし、リスペクトしていますし、こいつあたまくるってんなキモ と思っています。
    • 誰とは言いませんが、他の人のこともずっと見ています。
  • 言語更改
    • Juliaのバージョンが1.4.0になり、ジャッジのルール自体も改善されているようです。やったね!
    • それで、Juliaユーザーは増えましたか…?

やったこと

  • ぶっちゃけ長すぎて覚えてない
  • 知識
    • 恐らく今の環境で青色に上がろうとした場合、アルゴリズムの知識という面ではこれまで(1年以上前の認識)より半色ぶんくらい上の水準が求められるように感じます。
    • 今の環境にどれくらい適合しているかわかりませんが、緑時に知らなかった中で特に出そうだと感じたものは
      グラフの最短路アルゴリズム三種、Heap、BIT、二分法、逆元、LCA
      辺りかと思います。
    • とはいえ、AtCoderの問題はアルゴリズムやデータ構造に寄らない部分に難しさがあるものがほとんどだと思います。
      その部分に関しての勉強法は正直わかりかねます…
    • 私は再帰が書けません
      Juliaしか使わなくても、再帰が書けなくても、青色にはなれます。
  • DP
    • なんかしらんうちにレート相応にはできるようになった気がします。
    • 経験によるものが大きいかもしれませんが、直感的に解き方がわからない問題に出会った際、部分問題(例えばN番まで考える問題があった場合、i番までを考えることで問題が解きやすくなるかどうか)を考える癖をつけるとよいかもしれません。
      二分法も似たような切り口のような気がします(値を固定した際の判定がO(N)の場合、境界を二分法で調べることで正答できるか考える癖をつける)。
  • 実践(精進)
    • ①過去問を解く②知らない知識をググって得る 以外のことはしていません。
    • 蟻本は購入して一年半以上経ちますが、未だに一切使っていません。要するに必須ではないということです。
    • 過去問に関しては、AtCoder Problems でいうところの青diffに対する勝率を意識しつつ、黃diffも相性の良い問題は解こうとしていました。
    • 実際に本番ではE問題を高確率で40分前後で解け、あわよくばF問題も解けるという状態であれば、青色はかなり近いと思います。
    • 精進は AtCoder Problems にかなり依存していると思います。ありがとうございます。kenkooooさんいつもありがとうございます。消し方のわからなかったバチャに関しても丁寧に確認いただいた上対応していただきました。ほんとうにありがとうございます。
    • つらい思いをする

感想

  • つれぇ
  • つらかった
  • あまりにも水色生活が長すぎたので、詳しくはほとんど覚えていません。時々とんでもないやらかしをして、それを期に一週間異常な頑張りをみせ、力尽きるみたいなサイクルを何度か繰り返した記憶はあります。
  • 正直競プロに対して追加的な努力を重ねられた時期はごくわずかで、それ以外の殆どは実力を保つため守りに入っていたと思います。
    それでも守りの部分はある程度継続できたので、その中でチャンスがあればレートを微増させる、ということの繰り返しで何とか滑り込めたという感じがします。
  • 完全に競プロから離れなかった理由としては、unique AC streak*1 とバチャの存在があると思います。どちらも正直やるだけだと得られるものは殆どありませんが、仮に一回一回が無意味だったとしても継続する価値はあると思います。ほけきよ先生ありがとうございます。
  • 一応目標は黄色です。これは、「黄色になれるかどうかは適性の有無」だと私が信じているからです。
    正直、私には適性がないように感じていますが、一応掲げておこうと思っています。

*1:執筆段階で191日