AtCoder Beginner Contest 013

 Cが解けなかったのが痛い。

結果

 300/401 77:05 92位相当

 

 開始時刻 2017/07/23 14:57:00 提出履歴

A: A - AtCoder Beginner Contest 013 | AtCoder

 0:44(AC)

 A-'A'+1。

B: 錠 - AtCoder Beginner Contest 013 | AtCoder

 2:41(AC)

 時計回りと反時計回りで小さい方を取れば良い。

C: 節制 - AtCoder Beginner Contest 013 | AtCoder

 38:05(WA)79:10(WA)79:40(WA)80:24(WA)

 ドツボ。豪華な食事の回数iが決まれば普通の食事の回数jは一意に定まるけど、jが0を下回ることはないっていうのを忘れてた。どっかで除算をミスしたかと思ってハマった。

 int型の範囲でC=A/Bとすると、C<=A/B<C+1になる。何度も見直してしまったけど、間違いないって即断できないと勿体無いので覚えておきたい。

 ちなみに、100点解法は逆に思いつきませんでした(?)。

D: 阿弥陀 - AtCoder Beginner Contest 013 | AtCoder

 77:05(AC)

 高速累乗と同じような手法でやる。要は2^n回の遷移を、Dを表現するのに必要な範囲のnで用意して、あとはビットが立ってる桁で遷移を実行。

 ちなみに、ans[i]=kが「遷移の結果、左からi番目の列にkがある」を格納するので出力が汚い。綺麗にできるのかなこれ。

感想

 D問題が通ったのにC問題が通せなかったのはなかなかダメージが大きい。こういうミスは減らしたいなぁ。