2020/10/3に開催されたAtCoder Regular Contest 104に参加しました。
さて、私自身AtCoderを始めたのが今年の5月ぐらいなので、ARCというのに参加するのが今回初めてです。そのためARCがどういう位置付けなのかはわかってませんが、まあなんかいろいろ情報を収集してみて、ABCとAGCの中間ぐらいのやつかないう認識です。
配点をみてると、なんとか2問程度は解けるかなという感じだったんで、2完以上を目標にすることにしました。
AtCoder Regular Contest 104 - AtCoder https://t.co/kXbhgjUN93
— devgenjin77 (@devgenjin77) 2020年10月3日
ARC初参加。とりあえず2完以上できるよう頑張ります!
今回の結果
で、今回は結果は目標通りの?2完でしたー。
2完でもパフォーマンスはそこそこだったので、レートの方は上がってくれました。
devgenjin77さんのAtCoder Regular Contest 104での成績:2426位
— devgenjin77 (@devgenjin77) 2020年10月3日
パフォーマンス:944相当
レーティング:537→590 (+53) :)
3完の壁は厚く、2完止まりでした。。
ここ数回で下げた分が戻ったので良しとします。
また次回も頑張ります。#AtCoder #ARC104 https://t.co/9XUAW351lI
振り返り
C以降は全く歯がたたずでした。
A問題
方程式を解いていく。
となるので、は求めるのが簡単。
がわかればなので、も簡単に求まります。
あとは、実装だけしてAC。
B問題
文字列が問題文にあるような条件を満たすかを判定するには、文字列の中に存在する'A'の個数と'T'の個数、'C'の個数と'G'の個数がそれぞれ同じかを判定すれば良いです。
あとは文字列の文字目までにある'A','T','C','G'各文字のそれぞれ個数がわかるような配列を前処理で作っておけば、累積和を計算する要領で、文字列が条件を満たせるかを速く判定できます。
実装に少してこずったものの、なんとかAC。
C問題
問題文の言ってることが最初よくわかりませんでした。
しかし、よくよく考えて、エレベータ内部をキューに見立てるといいんじゃないかという考えに至りました。先に入った人が先に出る。後に入ってきた人が、その時にいた人より先に出ることは無いという条件が満たせればOK。
と、いうとこまでは考察できたんですが、結局、記録の欠落してる部分のパターンをよく考えたときに実装できるような解法が思い浮かばすで、断念しました。
D問題
問題文は見ましたが、解き方が全く不明でした。
E問題
このあたりまでくると、問題文もろくに読めずでした。
F問題
Eとおんなじで、問題文もろくに読めず。
これまでの実績
なんとかここ数回の下げ分は取り戻しましたが、緑はまだまだ遠そうです。
総括
今回のコンテストでは、C問題が解けると大分パフォーマンスが跳ね上がってくる感じでしたが、それができるようなレベルに上がるためにはまだまだ精進が必要であると感じました。
また、次回も頑張ります。
追伸
で、さらなる向上をめざすべく、TLで話題になってた、アルゴリズム本をさっそく購入しました。少なくとも年内には読み通してみようかと思ってます。