Codeforces Round 1107 (Div. 3) 参加記
私です。
Codeforces Round 1107 (Div. 3) に参加しました。4完です。あと2回で入緑できるかな〜?って感じですね。わんちゃんDiv.2を早めの2完とかできたら次で入緑もあるかも?
A~CはPCでDの途中からベッドでスマホコーディングした感じです。
A問題 Divide and Conquer
なんか小難しく書いてますが、つまり x % y == 0 ? "Yes" : "No" 。これだけです。
B問題 Good times Good times
バカ真面目に考えると、どう考えるのかは 知らない のですが、同じ文字列を後ろに結合させると、良い数字は良い数字のままですね?ということは、 の桁数を をすると、 になるということです。これを素直にパッと出てきたのは成長なのかな?
C問題 RemovevomeR
最初は内側から貪欲に消していくと、うまくいくのでは?と思ったのですが、全然そんなことはなく、外を消していってABAの形に寄せていくケースもあるなぁとなり、棄却…
実験していきましょう。
当たり前ですが、, 片方しかない場合の答えは です。
まず、 と の塊が完全に分離してると()、答えは です。
次に、 と の塊の片方がもう片方に挟まれていると()、答えは です。
これ以降()も同じように答えが になります。( のケースでは、 を消していくイメージで最終的に が残る)
つまり、bitが反転するのが 回ならば 、それ以外は ということです。
D問題 An Alternative Way
めっちゃ失礼なんですけど本当に文句が言いたくて、私の英語力?読解力?が低いだけなのでしょうか。問題文なんかめっちゃ読みにくくありませんでした? まぁ、それは良いとして。
問題文を要約すると、配列 に対して次の操作を任意の回数行います。
-
区間 を選ぶ。
-
すべての に対して、以下のように を更新する。
- が偶数なら、
- が奇数なら、
最終的に、 とできるかという問題です。
-
なので、任意の1要素に対して、 を足し続けることが可能です。ここから、 ならば、必ず
Yesになります。 -
操作1回は配列 全体に対して か の変化しか与えることができません。
これらより、 を満たすと Yes になります。
ここで寝落ちので、E問題以降は解けませんでした。
相変わらず、itertools をコメントアウトするのを忘れて CE 出してしまうの本当に良くないなぁ、と思いつつ、入ってない方が悪いという責任転嫁をしながらまたCFに出ようと思います。
それでは、また。