Mallet Math (部分点)

2 secs 1024 MB
programgmg2's icon programgmg2

解説

・部分点解法

この問題において、制約の NNN20N \leq 20 と小さいので残すべき積み木の組み合わせ 2N10485761062^N \leq 1048576 \fallingdotseq 10^6 通りを全て列挙しても余裕で間に合います。(bit全探索)

後はその中から要素の和が KK になるような組み合わせを一つ見つけて出力すれば良いです。K=0K = 0 のときに一つも積み木を残さない組み合わせを選ばないように注意してください。

時間計算量は組み合わせの列挙に O(2N)O(2^N) 、列挙した組み合わせそれぞれに対しその要素の和が KK に等しいか判定するのに O(N)O(N) かかるので、全体として O(N×2N)O(N \times 2^N) となります。