Toy と帽子と ADP BE

主にプログラミングに関わる話をゆるくエモくやっていきます

AtCoder Beginner Contest 156

4完1WA。一発での水色復帰はならず・・・。

各問題

A - Beginner

書いてあることをそのままやればいいです。Nが10以上ならRをそのまま出せばよいですし、10未満なら内部レーティングをXとすると、与えられた計算式からR = X - 100 * (10 - K)であり、X = R + 100 * (10 - K)となります。

平均的なA問題よりは少し複雑でしたね。

B - Digits

考えるのが面倒だったのでググって拾ってきた基数変換クラスを貼り付けて解きました・・・。

これはまともに?やるなら、NをKで何回割れるかを数えればよいですね。

C - Rally

制約が1 <= X <= 100と極端に小さいので、集会を開く場所を1から100まで全探索してその中で最小のものを答える、でよいです。

個人的にBより簡単だった。

D - Bouquet

作れない本数が存在しない場合、作ることのできる花束の種類は2^ N-1です。各花束を選ぶか選ばないかで2通りがN個分あって、全て選ばない、つまり0本のときは除外するので-1だからです。

で、ここから作れない本数の種類を引けばいいです。n種類の花からa本の花束を作る組み合わせは_{n}C_{a}です。aとbについてこの組み合わせの個数を求めて、2^ N-1から引けばよいです。

この考察は割とすぐできたのに、組み合わせの計算でバグらせまくってパニックになっていました。今回はNが大きくてAが小さいパターン、つまりおなじみけんちょんさんのブログの2のケースですね。

E - Roaming

残った時間必死に考えましたが、大したものは浮かんでこなかったです。

F - Modularness

見てません。

まとめ

組み合わせの計算をバグらせまくって時間を食ってしまったので、水色に届かず。

いやでもこれで逆元の計算はだいたいわかったので、次からは大丈夫っぽい。どんとこい。

f:id:mdstoy:20200222230703p:plain