BitDP を使う.

問題の集合 \(S\) を並列に解いたときの最小のPCの台数を \(C(S)\) とすると,

\[C(S) = \min_{T \subset S} (C(T) + C(S \setminus T))\]

となる.

これをそのまま計算すると \(O(4^N)\) となるが, ある集合の部分集合を列挙する部分でうまく工夫すると \(O(3^N)\) に落とすことができる.