入水したのでうれしいなと言う
入水しました
中三水コーダーのみちらからです。前回のARC162で入水したので記事を書きます。
うれしいな
うれしいです。AtCoder始めたときに知ってた強い人(今はやっていない人)が水コーダーだったので驚いています。水コーダーは上級者のボーダーだと感じていたので感慨深いですね。(ちなみに黄コーダーは人外ボーダーです)
やったこと
実は緑コーダーの間に解いた問題数は少ないのですが、高めのdiffの問題を多く解いていたので緑、茶diffは大体一瞬で解法が浮かぶようになりました。精進って大事ですね。
あとC++に移行しました。きっかけはJOI本選です。入緑まではPythonを使ってAtCoderの問題を解いていたのですが、JOI本選ではC++しか使えなかったのでかなり結果はボロボロでした。それが悔しかったので次のABCから急にC++に使用言語を変えました(は?)。今はC問題まではPython、D以降はC++で解くスタイルになっています。C++の魔改造テンプレートやマイナーデータ構造ライブラリを作ったことにより、Pythonより速いスピードでコーディングができるようになりました。例をお見せしましょう
int main(){ INT(n,k,q); vl a(n,0); Treap<> ps; rep(i,n){ ps.insert(0); } while(q--){ INT(x,y);x--; ps.erase(a[x]); ps.insert(y); a[x]=y; print(ps.query(n-k,n)); } }
これはABC306のE問題です。ライブラリ、テンプレートは省略しています。 とても短いですね。どれくらい短いのかというとC++の解説コードは65行もありますが、このコードは15行しかありません。つまり1/4以下の記述量で問題が解けるということです。うれしいね。
いろいろなデータを見る
パフォーマンスのグラフ
パフォーマンスのグラフです。相変わらずパフォーマンスが不安定ですね。
一度灰perfが出ていますね。本当に水コーダーか?
割と水perfが安定してきているような気がしないでもないのでこの調子で頑張りたいです。
Heatmapのmax difficulty
ちょうど真ん中までが茶コーダー時代、それ以降が緑コーダー時代です。
明らかに水や青の量が多いですね!えらい!
精進グラフ
赤コーダーです!やったね!!(うれしくない)
コードゴルフ楽しいよという話
コードゴルフに少しハマってshortestを30個くらい持っています。 Pythonメインでやっているのですが、Pythonの謎記法やCythonのfor文の仕様を知ることができたりしてABC前半の早解きにもかなり役立っている気がします。最初のshortestから100byte近く更新できることもあってすごく楽しいです。ぜひコードゴルフをやってみてください。でも私のshortestは更新しないでくださいお願いします何でもしますから
目標
今年中に青コーダーになりたいです。
これまでの色変は全て半年おきに達成しているので青にも半年でなりたいですね。
それでは12月、入青記事でお会いしましょう。ではまた!