競技プログラミング初めて2年経ちました

去年も書いたので今年も書きます。2年間の振り返りとか今年の抱負とか書いています。

AtCoderのレート推移

f:id:nanae1914:20190122191522p:plain
AtCoderのレート推移

初めてAtCoderに参加したのが2017/01/07のABC051ですね。当時は愚直に全探索をするという思考が身についてなくてB問題のO(N^2)の全探索が書けなくて苦戦したこととか、D問題の解説を聞いてワーシャルフロイドというアルゴリズムを知り、なんじゃそりゃって思ったこととかを覚えています。解説放送といえばりんごさんですが、当時はりんごさんが不在でちょくだいさんが解説していました。ワーシャルフロイドの原理が分からね~みたいなコメントがあって、ちょくだいさんが頑張って分かりやすく解説してくれようとしていたんですが、当時はよく分からなかったです。今は何となく分かります、あれは(経由地点に0 ~ kまで使えるときの最短距離)みたいなDPをやっているってことなんですね(おそらく)。

それからこどふぉとかにも参加しながら楽しくやっていて、水色は割とすぐでした。そこからなかなかレートが上がらなくなって青色になるにはちゃんと勉強しなきゃいけなさそうだということで、青色を目指しました。青色になったら「競プロ経験者です」という格好がつくかなとか考えていました。いわゆる螺旋本を買って読んだり(蟻本は難しいと聞いていたので)、こどふぉに出まくったりしていました。こどふぉの規模とか深夜特有のアングラ感(?)とか結構好きなんですが最近は全然出ていません……やはり健康的な生活を犠牲にするのはデメリットが大きいです。

印象深い出来事としては「日本橋ハーフマラソン」というマラソン系のコンテスト予選を通って、本戦のオンサイトに行けたことですね。まだ競プロ始めて3カ月とかだったので今思うと奇跡的な気がします……このことで「もしかしてマラソン得意なのかなあ」とかちょっと勘違いしたのですが、そんなことは無いですね。

あと、振り返ってみてよかったなあと思ったのはJOIの過去問を解いたことですね。JOIの過去問はDPを使う問題が多くて、かつAtCoderに出すには典型すぎて出せない(多分)ものも出るので、そういう問題でDPに対する感覚を養うことが出来たのが結構良かったと思います。PythonからD言語に乗り換えたのもちょうどそのときですね。JOIの過去問はTLEとMLEがかなりきつくてPythonでやるのは不可能だったんですね。それでD言語を本格的に乗り換えました。

そして実際に青になれたのが2017/07/23、競プロ始めてから8カ月、rated24回目のAGC018みたいですね。あんまり覚えていませんが、Bの700点までを50分ちょいで通して(Aに20分かかっているのでBは実質30分程度?)黄色パフォが出たようです。今見てみると確かにB問題難しいです……全然分かりません。一時間くらいかけてやっと分かりました。確かに好調だったようです。

しかし当時は青になれたもののあまり実感が無かったです。こんなんで青になれていいのか、とかまぐれかなあとか思っていました。そんな感じで一旦9~11月あたりに間が空いて(競プロに飽きて別のことをやっていた)また復帰して、水色に落ちたり戻ったりしてますね。やっぱり当時は安定した青レベルの実力が無かったのだと思います。

そして2018年一発目のコンテストでぴったり青に戻るんですね。そっから低空飛行を続けるものの、結局2018年は青から一回も落ちてないですね。「レート上がらなくてもいいから、青は維持し続けたいな」と思っていたのでそこは良かったです。でも2018年は振り返ってみても、あまり書くことがないです。というのもコンテストは毎週出るようにはしていましたが、精進らしい精進もしていなかったので……それでもレートは少し上がってるので不思議ですね。2017年の貯金のおかげでしょうか。

レートに関して、今年は明確な目標を立てようと思います。理想は2000(=黄色)ですが、正直黄色になれるビジョンがちょっと見えません。最近黄色パフォも全然出せてないし、黄色になるなら橙に近いパフォをたまに出せなきゃいけないと思うんですが、それは一回も出せていません。なので1900にしておきます。この辺がギリギリ頑張れば達成できそうなラインな気がします。

TiddlyWikiのすすめ

みなさん、コンテスト後の復習メモツールみたいなのって何使ってますか?

ローカルにメモ帳で書くとか、ブログに解説記事を投稿するとか、最近だとScrapboxっていう良さそうなのを使ってる人もいるみたいですね。

私はTiddlyWikiというものを使っています。

tiddlywiki.com

選んだ理由は

  • ネットが繋がってなくても使える
  • ブラウザ上で起動できる
  • 軽い
  • texで数式が書ける
  • タグ付けが出来るので整理しやすい

あたりですかね。デメリットは記法がmarkdownとかとちょっと違うのでアドホックなことと、書いたものをそのままネット上に公開することは出来ないというところです。

結構オススメなのでよければ使ってみてください。

競プロSlack

今年は本格的に競プロ強くなりたいと(今のところ)思っているので、中級者競プロSlackに入ることにしました。結構議論が行われていて赤の人もいたりしてよさそうです。積極的にかかわっていけたらなって思ってます。

作問

今年はyukicoderでいくつか問題出したいです。多分★2以下の問題になると思います。そろそろ★3の問題とかも作れるようになりたいですが、実力的になかなか難しいですね。

まとめ

  • 今年はレート1900を目指します
  • コンテストの振り返りにTiddlyWikiがおすすめです
  • 競プロSlackにも積極的に参加したいです
  • yukicoderで出題したいです