AtCoder Beginner Contest 007

 指を温めがてら。

結果

 400/400 64:05(2) 22位相当

 

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

A: 植木算 - AtCoder Beginner Contest 007 | AtCoder

 0:20(AC)

 N-1を出力するだけ。

B: 辞書式順序 - AtCoder Beginner Contest 007 | AtCoder

 3:28(AC)

 Sがn文字(n>=2)なら、先頭n-1文字を出力する。1文字のときは、aなら-1、それ以外ならa。

C: 幅優先探索 - AtCoder Beginner Contest 007 | AtCoder

 19:46(AC)

 なんてことない幅優先探索。コードを書くのが遅い。

 こういうのってどうやったら早く書けるようになるんだろう、何回も書いて慣れるしかないのかな。

D: 禁止された数字 - AtCoder Beginner Contest 007 | AtCoder

 40:50(WA)45:42(WA)54:05(AC)

 10進数の数値を4と9を使えない8進数では何番目の値なのか計算して、元の値から引けば、幾つ使えない数字があったのかがわかる。そう思いながら意気揚々とコードを書いてWA。

 間違っていたのは8進数で何番目かを考えるときの4と9の扱い。最初は何も考えずに3と8に落とし込んでいたけど、それだけじゃなくて、4と9が出てきた時点でそれ以降の桁を8でフィルする必要がある。というのも、例えば3888...以降は5000...に移るまで8進数の方に一切の進展がないため、フィルをしないといらないものまで数えてしまうことになるから。

 コードを修正してAC。

感想

 直感は大切だけど少し冷静になる必要もあるなと思った。コーナーケースがサンプルにないことなんてザラなのに、サンプルが通ったら妄信的にACだと思うのはよくない癖だと思う(2回WAの原因がそれ)。