ABCの3完。やっぱりAtcoderの問題に比べるとゴチャゴチャしている感じが強い。そしてunratedだった。
A. Puzzle Pieces
テストケースに出ている$ 2*2の例を見て、これに付け足して大きくしていくことを考えるとできなさそうなので、
$ 2*2か$ 1*nか$ m*1の場合にYESにするようにした。
B. Card Constructions
一段高くなるごとに$ 3 * n - 1だけ必要なカードが増えていくので、等差数列の和を使ってn段目に必要なカードの枚数を
$ n*(3*n+1)/2と求める(但し、最大でも10^9なのでそれで打ち切る)。あとは、nに対してn以下のこれの最大値を引いていく作業を、nが1か0になるまで繰り返せばいい。答えは引いた回数。
C. Hilbert's Hotel
無限にある部屋をn個ずつ分割して、最初のブロックの0からn-1番の部屋について考えると、元々左右に無限に部屋があるので、部屋を移動する時にその範囲からはみ出した場合、逆から戻って来るような考え方ができる。(例: n-1番の人が+1される場合、右からはみ出して左に戻って0番の部屋に入る)。これを利用して、0からn-1番までの部屋の人が重複無く0からn-1の範囲のどこかに入ることをチェックする。