AtCoder Beginner Contest 006

 3つ目。

結果

 400/400 59:15(2) 25位相当

 

 開始時刻 2017/07/22 19:50:00 提出履歴

A: 世界のFizzBuzz - AtCoder Beginner Contest 006 | AtCoder

 0:39(WA)1:07(AC)

 大文字小文字を間違えた。愚か。

B: トリボナッチ数列 - AtCoder Beginner Contest 006 | AtCoder

 3:52(CE)9:40(RE)49:15(AC)

 問題条件を見間違えてRE。愚か。

C: スフィンクスのなぞなぞ - AtCoder Beginner Contest 006 | AtCoder

 9:17(AC)

 大人をa、老人をs、赤ちゃんをbとして、N=a+s+b、M=2a+3s+4bを満たすa、s、bの組を答えれば良い。

 3変数で考えると面倒臭いので、aを消して考える。するとM=2(N-s-b)+3s+4b、変形してM-2N=s+2b。

 あとはbとsに適当に値を当てはめる。簡単なのはb=(M-2N)/2、s=(M-2N)%2。bがマイナスになるようならば-1を出力。

D: トランプ挿入ソート - AtCoder Beginner Contest 006 | AtCoder

 48:38(AC)

 10分くらい考えてNからLISを引けば良さそうなことに気づく。…気づいたけれど、LISの実装につまづいて30分くらい時間を溶かした。

 LISの実装に関して思ったことを少し箇条書き。

  • 単純な二分探索はupper_boundが楽
  • i=0は最初に代入しておいて、len=1、i=1からスタート
  • lenは常に末尾一つ後ろを参照していることを忘れずに
  • INF埋めしてからlower_boundの方が脳死で組めるし良さそう(下記参照)

    even-eko.hatenablog.com

感想

 LISを組めないあたりが実装力の弱さを物語ってる…精進します。

 あと、早解きもほどほどに。大切だけどWAで5分ペナ受ける方がバカらしい。