bouzuya.hatenablog.com

ぼうずやのにっき

三井住友信託銀行プログラミングコンテスト 2019 A, B, C, D, E / ラバーダック・デバッグ

三井住友信託銀行プログラミングコンテスト 2019 A, B, C, D, E 考察

sumitrust2019 A - November 30

翌日が 1 日なら月末日なので D_21 なら 1 そうでなければ 0 を出力すると良い。

https://atcoder.jp/contests/sumitrust2019/submissions/16603744

sumitrust2019 B - Tax Rate

最初は計算して求めようとしたものの端数の処理がわからなかった。途中まで計算して誤差の出そうな +-1 を探索した。

制約 (N <= 5 * 10^4) 的にに全探索 O(N) でも解ける。

https://atcoder.jp/contests/sumitrust2019/submissions/16603778

sumitrust2019 C - 100 to 105

X と品物の数からひとつの商品だけを買っても X を超えることはできる。おにぎりが 100 円なのでこれを買い続けることで 100 円以上の金額は帳尻合わせができる。 100 円未満の部分 A については 105 円を B 個と必要なら 101 〜 104 円のいずれか 1 個で埋められる。この B or B + 1 は最低限必要な個数 C になる。この C * 100 + A > X のときは買うことができない。

https://atcoder.jp/contests/sumitrust2019/submissions/16603808

sumitrust2019 D - Lucky PIN

N <= 3 * 10^4 なので O(N^3) で 3 桁を探索すると間に合わない。

暗証番号 X は 3 桁なので 000 <= X <= 999 の 1000 通りしかない。 1000 通りに対して O(N) で設定可能なものかを確認できる。これは 10^7 程度なので間に合う。

https://atcoder.jp/contests/sumitrust2019/submissions/16603840

sumitrust2019 E - Colorful Hats 2

解説 AC 。知識的には解けるはずだが解けなかった。

前から順に数えてそこまでのある色の帽子の数を把握しておいたほうが良さそうなのは想像できた。そこから先でどうすべきかが出てこなかった。

前から順に各帽子をかぶっている人数を保持しておく。改めて前から走査して A_i とその位置のかぶっている人数からそこでの選択肢の数を得る。 mod を考慮しつつそれらの積を取ると求められる。

https://atcoder.jp/contests/sumitrust2019/submissions/16606731


リングフィットアドベンチャーを続けている。


バーダックデバッグ (rubber duck debugging) 。テディベア効果。蒼き鋼のアルペジオ ヨタロウ キリシマ キリクマ ほぼ等身大ぬいぐるみ。

https://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%90%E3%83%BC%E3%83%80%E3%83%83%E3%82%AF%E3%83%BB%E3%83%87%E3%83%90%E3%83%83%E3%82%B0 https://en.wikipedia.org/wiki/Rubber_duck_debugging