Toy と帽子と ADP BE

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

AtCoder Beginner Contest 322

5完1WA2RE

各問題

A - First ABC 2

find すればよいです。見つかった場合は返ってきたインデックスに(0オリジンなので)1を足したものを答え、npos だった場合は -1 を答えます。(npos は -1 なのでそのまま出力してもよいです)

B - Prefix and Suffix

S と、T.substr(0, n) を比較すれば接頭辞であるかどうかがわかり、T.substr(m - n) を比較すれば接尾辞であるかどうかがわかります。

C - Festival

答えを N 日目から求めていきます。i 日目が花火が上がる日なら 0、そうでないなら i + 1 日目の答えに1を足したものが答えになります。

A は vector ではなく set に入れておくと実装が楽です。あと N 日目は花火が上がることが保証されているので上記の実装で変なコーナーケースを踏むこともありません。

D - Polyomino

なんか以前にも同じような問題があったような。

まず、# の合計が 16 でない場合は当然 No です。

10 x 10 のグリッドを用意して、3つのポリオミノをそれぞれ左上を (0, 0) ~ (6, 6) に配置した場合の493通り、さらにそれぞれ回転の43通りをすべて試せばよいです。で (3, 3) ~ (6, 6) の 16 マスがすべて埋まっていれば OK です。

E - Product Development

i 個めまでで各パラメータの値が u, v, x, y, z の時の最小コスト、という DP をやります。

気合で 6 次元配列を回して、P や K の条件で(REを2回踏みながら)場合分けをして通したのですが、通った直後に各パラメータの値は (P + 1)^k でたいした大きさにならないのでひとまとめにできるやん!2次元の bit DP もどきやん!ということに気づきました。 on_

まとめ

D も E も実装重くしてしまって疲れました...。