otsunekoの日常

CodeForces&ARC初受験記

順調に競プロ沼にハマっていきつつあります。今週は初こどふぉと初ARCです。

ABC191?C問題で爆死しましたけど?

Codeforces Round #701 (Div. 2)

Codeforces Round #701

ただでさえ23:35開始という日本人に優しくない時間帯なのに15分遅れての開始だったので心が折れかけました。初めてAtCoder以外のコンテストを受けてみて、ここが違う!!と感じた点は以下です。

  • 自分のコードをローカルで作成→アップロードして提出(めんどくさい)
    2/23追記:PROBLEMSタブ右隣のSUBMIT CODEタブからコピペしたコード提出できました…
  • 問題文が英語かつ結構長い(DeepLさんありがとう)
  • Hackとかいう恐ろしいルール(他人のコードの不備を指摘してスコアゲット)がある

結果はA問題1完でした。全探索かけるとTLEになりそうだったので、マジックナンバー使ってループ数減らしたんですが、解説見てみると意図せずそのマジックナンバーで全ケース網羅できてたようで運良くACできました。こどふぉの仕組みまだよくわかってないですが、Hackされなくてよかったよかった。

続くB問題は、どんだけ頑張ってもTLEが取れず、敢え無く時間切れでした。O(N)O(N)で計算してたんですが、実際はO(1)O(1)で計算できた模様…数学ムズカシイ。

AtCoder Regular Contest 112

AtCoder Regular Contest 112

こちらもA問題の1完でした。B問題は場合分けが難しく、O(1)O(1)で計算できる気配をプンプン感じたのですが時間内に解けませんでした。(2/14追記:なんとか解説なしで解けました…)

実力からしたら上出来でしょうが、解くまでに時間かけすぎ&WA3回出したので灰パフォでした。終わったあと順位表見てみたところ、早解きできればA問題だけでも茶~緑パフォ、AB問題なら水~青パフォが出せるみたいなので、まずはAB問題まで解けるようにすることを目指しつつ、同時に解くスピードも上げたいですね。

ここまでコンテストを数回受けての反省点として、どうしても1回WAだとかTLE出すと時間制限もあって焦りからドツボにはまりがちです。何より、ずっと同じ問題のバグ解析してると、徐々に何が正しいのかとかどこまで思考進めたかすら混濁して「俺自身がバグになる事だ」ってなりがちなので勘弁してほしいですね。AOJだと引っかかったテストケースが公開されるからどういうケースが考慮されてないのか検討つけやすいんですけど、AtCoderはそうではないため考察力が試されます。ただぼんやりと以下のような傾向がある気はしてます。

  • WAが1~2個
    ⇒大枠のアルゴリズムは正しいがコーナーケースで引っかかっている(例:入力に0が絡むケース、最大値最小値が絡むケース)
    ⇒ある特定のケースだけを対象に条件分岐したら通ることも
  • WAが2~5割
    ⇒大枠のアルゴリズムで考慮できていない範囲がある(例:計算過程が正の数だけだとACだが負の数が絡むとWA)
    ⇒一番シンプルに題意を満たす入力と、一番ひねくれたケースを比較して考察する(ぐらいしか今はできてない)
  • TLEが2割以上
    ⇒アルゴリズムにセンスがない
    ⇒神に祈りを捧げる

以上です。