解説

  • dp[nn番目の色まで][パーツの重さww] = (n番目の色までを使って重さwwのパーツを運ぶのに必要な生命体Pの数)

というDPを考えます。 ここで、答えの上限は「最もパワーの大きい色の生命体P KK 匹で運ばせたときのパワーの総和+1+1」に等しいことから K×max(pi)+1K \times max(p_i)+1 となり、 この範囲の中でDPを行うことでこのDPの時間計算量はO(NK×max(pi))O(NK \times max(p_i)) となります。