ツバサの備忘録

主に備忘録代わりに精進記録を載せていくつもりです。

ABC119 C - Synthetic Kadomatsu

問題
提出コード

解法

全探索をすればよいです。
Aに使う竹、Bに使う竹、Cに使う竹の3種類にまず分けます。
これは、bitで竹を表現して全探索するとやりやすいかと思います。
ビットの部分集合を列挙する方法はこちらをご覧ください。

techtipshoge.blogspot.com

さて、その後は、それぞれについてコストを計算します。Aについて計算してみます。
まず、10 \times (Aに使う竹の本数-1)のコストが必要です。
あとは、Aと(今使用する竹の長さの総和の差)の絶対値
を計算して、これらを足し合わせると、Aを作成するのにかかるコストが計算できます。
同様にB,Cについても行えば、その合計値の最小値を探すことで、答えを求めることができます。

感想

bitの部分集合を列挙する方法を探すのに数分かかりました(他の方とのトーク履歴に残っているので、いつもそこから探しています…w)。そして、誤読をしていて、全ての竹を使わないと勘違いしていたり、そもそもバグを埋め込みすぎていたりしたため、先にDに飛びました。
なかなか実装の重いCではないかなと思います…