i7_yoc's something

数学科…なのか?

AtCoderで水色になっ(てしまっ)た話

1/27のNikkei Programming Contest 2019で水色になりました。

f:id:i7_yoc:20190128234336p:plain

全体的に単調増加なので今後もこれを維持していきたいですね。

水色を目指す人のために経験を書いておきますが、ほぼ役立たないと思って読んでください。自分個人の偏見だけで書いているので。

 

・茶色まで

これはコンテストに慣れれば行けます。条件分岐・繰り返し・配列・文字列が普通に使えるようになればABCの200までは確実に解けるからです。

僕はここは特につまづかなかったですが、ここで伸び悩んでいる人は100・200点の過去問を埋めてコンテストになれることが大事かなと思います。

 

・緑まで

緑に早く行きたければ300点問題を解けるようになれれば良いと思います。昔のABCの300点はなかなか難しかったそうですが(埋めてないので知らない)、最近の300は大体計算量に余裕があるので全探索や愚直な実装で埋められる気がします(適当)。

C++使いの人はSTL(標準ライブラリ)の使い方を覚えましょう。queue,priority_queue,vector,mapやsort関数などを知っていると実装が楽になる場合が多いと思います。

 

・水色まで

緑までのことははっきり言ってそんなに覚えてないのでここからが本題ですね。

300点を早解きするのでも水になれますが、400ができた方が良いと思います。

なんとなく。

やったこととしては、

・蟻本の初級編と中級編を読みました。

・JOI(情報オリンピック)の過去問を埋めました

これくらいですが、特に後者のおかげで圧倒的に実力がついたと思います。

 

情報オリンピックの問題は割と素直にアルゴリズムが適用できる問題が多いです。難易度6~7を埋めて予選通過しました。このあたりはDP、dijkstra法、累積和(いもす法含む)などのテクニックを使う問題が多いです。

 

これのおかげで大体の感覚がつかめてきた感じがします(どうやって典型に落とし込むか、例えばソートしてから乗せる、だとかの感覚もここで身についたと思うので)

なので中高生以外の人にもJOI埋めはオススメだと思います。

自分は現在は難易度8~9を埋めています。本選対策として。難しい。

 

 

自分が水色になった回もDがトポロジカルソートで、JOI過去問で何回か使っているのですぐに解法の候補として浮かんだので。ちなみにその回のCが苦手なゲーム問題でしたがあることに気づけばやるだけだったので解けました。

 

f:id:i7_yoc:20190129000026p:plain

ちなみにですが自分はAtCoderの過去問に関して言えばほとんど埋めてません。意欲旺盛で1日3~4ACするような競プロerもよく見かけますが、自分は努力の才能がないのでそんなことはできません、、、

 

RPSが低いのは一つは単純に精進をしていないからで、もう一つはJOIの問題(これは点数が100点として扱われるはず)を優先的に埋めてるからです。

 

200ACもしないで水色になって良いのか・・・という感じはありますが、逆に感覚さえつかめれば水色はそこまで難しいものではないと思います。

 

以上、全く参考にならなかったと思いますが、読んでくれてありがとうございました。