2021/3/21に開催されたAtCoder Regular Contest 115に参加しました。
ここのところARCは1完どまりという微妙な結果が連続していたので、ここはなんとか2完は目指しとこうという感じで挑むこととしました。
参加します。まずは2完以上目指して頑張ります。
— devgenjin77 (@devgenjin77) 2021年3月21日
AtCoder Regular Contest 115 - AtCoder https://t.co/F9alFfLIgy
今回の結果
で、今回の結果は、自身初のARC3完達成です!
パフォーマンスは緑中盤で、レートはHighest更新となりました。
ARC初の3完達成!緑パフォで少し上がりました😃
— devgenjin77 (@devgenjin77) 2021年3月21日
次回もこの調子で頑張ります。
devgenjin77さんのAtCoder Regular Contest 115での成績:1201位
パフォーマンス:1102相当
レーティング:941→959 (+18) :)
Highestを更新しました!#AtCoder #ARC115 https://t.co/HIRLCgvgJ4
振り返り
なんとか、3完やりきったという感じです。
A問題
問題の特性上、'1'の数に着目すればなんとかなると思い、いろんな可能性を考えた。
結果、との正解数が等しいと仮定した時、の任意の1文字を反転させたら正解数は必ず異なる状態になり、等しい状態にするには、のうち1文字を反転させる必要があるということに気づく。
このことから、文字列中の'1'の数が 偶数か奇数かで分類すればいいんでは?という結論に至る。
この実装でサンプルが通ったので、投げてみたらACが取れました。
B問題
なんか愚直に組んでいけば良い系の問題だった。
- 各行の隣接する値の差が、全行で同じかチェック。同じでなければNoを出力。
- 各行の先頭の要素で最小の要素を覚えておく。
- 数列の各値は、
- 数列は、行列から先頭が最小の要素となる行の要素でよい
上記の要領でACが取れました。
C問題
当初、素数が正解に大きく関わるのではという予想から、1から初めて、要素が合成数の場合1を足す感じの答え(1,2,2,3,3,4,4,5,6,7..)で出してみるが、WAを喰らう。
そのあとをいろんなパターンで出してみたところ、結局数列の最後の偶数番目の要素は、その順番の半分のところの要素からプラス1するぐらいで十分でないかとの気づきを得る。
で、2の階乗番目の要素についてプラス1を行い、他は前と同じ値とするような感じの答え(1,2,2,3,3,3,3,4,4,4..)で良いんじゃないかと予想。これで出したところ無事ACが取れました。
これで、自身初のARC3完です!
D問題
Cを解いたあと20分弱時間があったので、ちょいと目を通してみましたが、そもそも順位表上AC数が100ちょっとという難問のため全然解ける気がしませんw
やはり解法も思いつかずで、そのまま時間切れを迎えてしまいました。
E問題
問題すらみておりません。
F問題
問題すらみておりません。
これまでの実績
連日のHighest更新。800付近うろうろ時代を乗り越えて、なんとか上に飛躍できそうです。
総括
今週土日は、連日のHighest更新となりました。
これに満足することなく、もっと上のレートを目指して日々精進に取り組みたいと思います。
また、次回も頑張ります。