AtCoder Beginner Contest 126
またUnrated回でした
参加者が5000人を超えた*1こともあるしだいぶきつそうですね
A - Changing a Character (100点)
A - Changing a Character
大抵の環境ではアルファベットの文字コードが連続しているので、'A' - 'a' を引けば大文字になってAC。。
拙解 (C++14): Submission #5448637 - AtCoder Beginner Contest 126
B - YYMM or MMYY (200点)
B - YYMM or MMYY
2桁に分けて、0であるか12より大きかったらYYしかありえない。よって4通りありえて、場合分けしてAC。。
拙解 (C++14): Submission #5452038 - AtCoder Beginner Contest 126
C - Dice and Coin (300点)
C - Dice and Coin
これは要するに「初期得点が1~6で同確率・無作為に決まり、以上になるまでコイントスで勝ち続ける確率」なので、すべての初期得点に対して倍プッシュ何回でに届くか数えてその都度初期得点ごとの確率を半分にして全部足せばAC。。
拙解 (C++14): Submission #5457899 - AtCoder Beginner Contest 126
D - Even Relation (400点)
D - Even Relation
無向グラフで巡回がないので、とは等しい。加えて、木なので、ある頂点を根とすればというふうに定まって、偶奇は各ノードで独立に定まるとわかる。したがって、どれかのノード(0とか)をどっちかの色で塗ってそこからBFSで偶奇が入れ替わるたびに塗る色を変えてAC。。
拙解 (C++14): Submission #5464301 - AtCoder Beginner Contest 126
E - 1 or 2 (500点)
E - 1 or 2
無矛盾が保証されている!したがって、カードの中身は1か2かしかなく偶奇だけ気にすればよく、がわかればがわかる!もちろんその逆も然り。したがって、を辺としたグラフを張って、Union-FindやBFSなどで連結成分の数を求めればそれがそのまま答えとなってAC。BFSなら、Union-Findなら(はアッカーマン関数の逆関数で、現実的な範囲内ではほとんど定数)。
無矛盾が保証されているので、は関係ない。ARC級の500点だったら無矛盾が保証されてなくて見る必要ありそう。
拙解 (C++14): Submission #5470040 - AtCoder Beginner Contest 126
F - XOR Matching (600点)
F - XOR Matching
まずの場合はどうやってもXORでKを作れないので不可能。そうでない場合、が小さい場合でいろいろ実験すると、(以外昇順),,(以外降順),という数列を作れば条件を満たしそうとわかる。以外については、挟まってる中身に以外が2項あるため、XORするとすべて0になって*2、総XORがになる。については、中身は以外の負でない整数すべてがあるので、この総XORは*3。サンプルにあるようにの場合がコーナーケースとなって、これを考慮してAC。。
拙解 (C++14): Submission #5474062 - AtCoder Beginner Contest 126
まとめ
Eで1WAして再提出したあたりからジャッジが詰まって結果が出たのは終了後数時間経ってからでした
最終的にEもFもAC通ってて254位パフォ1930(ac-predictor)だったので良かったんですが、さすがにFull-Feedbackコンテストにおいて参加者の間でジャッジの応答に差が出たのはまずかったらしく、Unratedになってしまいました
詫びABCが5/25(土)と5/26(日)の二日連続で行われるらしいので期待してます
*1:参考: 参加者数さらに増えた(rated範囲が拡大した影響もあり) pic.twitter.com/GspsRZUFEU
*2:任意の負でない整数についてが成り立つ
*3:が4の倍数なら。ABC121-D参照