2020/6/21に開催されたABC171に参加しました。
前回のABC170では、灰色卒業目前のところが400未満のパフォーマンスしか出せず、灰色卒業のおあずけをくってしまいました。今回こそ文句なしの灰色卒業と行きたいところです。
参加します。まずは4完が目標。
— devgenjin77 (@devgenjin77) 2020年6月21日
そして今回こそ灰色卒業!
AtCoder Beginner Contest 171 - AtCoder https://t.co/KvY7gBFnDc
今回の結果
で、結果は自分でも驚きの5完達成!
文句なしの灰色卒業です。
今回は初の5完で、文句なしの灰色卒業😆
— devgenjin77 (@devgenjin77) 2020年6月21日
次回も頑張ります!
devgenjin77さんのAtCoder Beginner Contest 171での成績:3250位
パフォーマンス:953相当
レーティング:380→490 (+110) :)
Highestを更新し、8 級になりました!#AtCoder #ABC171 https://t.co/z5crxsaFQQ
振り返り
C問題
C - One Quadrillion and One Dalmatians
前回、C問題でWAを何回かやらかしたので、今回はあえてC問題から着手することにしました。で、このC問題がなかなかの厄介な問題。
問題をみて、こりゃ10進数をAーZの26進数のように変換する問題かと考え、なんとかサンプルケースが通る実装をして提出したものの、結果はWA。。
色々なケースを考えて、ローカルでテストを繰り返した結果。どうも各桁を算出する際に毎回1を引いてけばうまくいくという結論に至り、なんとかACが取れました。
以下は実際に提出したコード。
https://atcoder.jp/contests/abc171/submissions/14565211
で、この問題だけで40分以上かかってしまいました。
A問題
入力された文字が大文字か小文字かを判別する問題。特につまるとこなくAC。
B問題
入力された数列から、小さいもの順に何個か足していく問題。これも詰まるとこなくAC。
D問題
数列が与えられ、数列内のある数全てを別のある数に置き換えたら、合計がどう変わるかを答える問題。
数字を添字にした配列を作り、数の個数を管理すれば計算量が抑えられるということに気付き、なんとかAC。
E問題
自分以外の全ての数字をXORした数が数列として与えられる。元の数列を答えなさいという問題。
あまり時間もないので、もう直感に頼るしかない。
たぶん入力の数列全部XORしとけば、なんか色々打ち消されて、そっから元の配列の各要素とそれぞれXORすればいいんじゃないだろうか。という雑な考察で実装してみたら、サンプルケースが通ってしまいました。
で、とりあえず提出したら、なんとACが取れました。完全にヤマカンです。
F問題
問題文に目を通すだけの時間はありましたが、カンで解ける様な問題ではなく、ここで時間切れとなりました。
今回の実績
参加6回目にして、やっと灰色卒業です。
総括
過去最高の5完達成となりましたが、どうも今回は難易度が以前と比べて低めだったようです。とはいえ目先の灰色卒業という目標は達成したので、次は緑を目指して頑張っていこうと思います。