AtCoder Beginner Contest 121(ABC121)に参加しました
今回はCが楽でしたね。Dも気づけば楽に解けることを後で知りました・・(タイムオーバー)
早く緑になりたいけど、その為には毎回Cが解けるようにならないとなぁ・・
A:
(W-w) * (H-h)
https://atcoder.jp/contests/abc121/submissions/4515073
B:
1行ずつ足して0超えるか判定する
https://atcoder.jp/contests/abc121/submissions/4515073
C:
コストの小さい方から順に取っていけばOK。A_iはコストの小さい順にソートする。
https://atcoder.jp/contests/abc121/submissions/4520740
D:
愚直にxor取ったら当然の如くTLEだった。なんか周期性があるんじゃないかと思っていろいろ探っていたけど時間切れ。
解説を読んだところ、
- f(A, B) = f(0, A-1) ^ f(0, B)
- 偶数xがあるとき、x ^ (x + 1) = 1。よってf(0, y)は 奇数の時(y+1)/2を更に2で割った余り、偶数のときはy/2を更に2で割って、それとyでxor
の二点を使ったところ、すげー簡単に解くことができた。残念。