AtCoder Beginner Contest 048

更新日時:

AtCoder Beginner Contest 048

ソースコード

解法のメモ

A - AtCoder *** Contest

$S[0][0] + S[1][0] + S[2][0]$ を出力する。

B - Between a and b …

$a = 0$ ならば $b/x + 1$ 、そうでなければ $b/x - (a-1)/x$ である。ただし割り算は計算機の割り算である。

C - Boxes and Candies

出来るだけ奥の方の box から candy を取り出すのが最善である。だからまず $a[0] > x$ ならば $a[0] = x$ となるように取り出し、以降は $i = 1, \dots, N - 1$ に対し $t = a[i - 1] + a[i] - x > 0$ ならば、 $a[i]$ から $t$ 個取り出す。

D - An Ordinary Game

最終結果でできる文字列に注目する。この文字列は $abab \dots a$ の形か $abab \dots ab$ の形をしている。 3 種類以上文字があれば必ず $abc$ のような場所が生じて $b$ を取り出せるからである。どちらになるかは最初の文字列で $S[0] = S[-1]$ かどうかを判定すればよろしい。すなわち、最終結果にでできる文字列は様々ありえるが、偶奇は一致する。そこで操作回数の偶奇も一定であるから、勝者が決まる。

ポイント

最善をつくす必要はない。どうやっても結果は決まっている。

その他

コメントする