POJ-3181 : Dollar Dayz
問題概要
[1..K](K<100)円の硬貨が十分たくさんある。このときN(<1000)円の支払い方は何通りあるか求める問題。
解法
個数制限なしナップサックと同様にやればよい。最大ケースでは64bitでも足りないので多倍長が必要。
POJ-2718 : Smallest Difference
問題概要
[0..9]の部分集合が与えられる。二つの集合に分けて適当に順序を変えて10進数の数字を作り差を最小化する問題。
解法
数が少ないので全探索が間に合う。桁数決め打ちで分けてnext_permutationくらいでも余裕。
POJ-3187 : Backward Digit Sums
問題概要
[1..N](N<=10)個の数字を一列に並べる。隣り合う数字の和からなる新しい数列で置き換えて一つになるまで減らし、最後の値が指定されたものになるようにしたい。そのような並べ方の辞書順最小なものを出力する問題。
解法
next_permutationで意外と早く見つかる。