タイトルます。https://nanti.jisuanke.com/t/41420
DP [X] [Y]は、xの定義は、最後の番号に最初のプログラムの数を表し、Yであり、組成物は、缶
#include <ビット/ STDC ++ H> 使用して 名前空間STDを、 typedefの長い 長いLL。 CONSTの INT N = 303 。 const int型 M = 150000 ; const int型 MOD = 1E9 + 7 。 INT DP [N] [M]。 INT [N]。 INT のmain(){ int型のT。 scanf関数(" %のD "、&T)。 一方、(t-- ){ int型 N、和= 0 。 scanf関数(" %dの"&N) のために(int型 I = 1は iがn = <; iは++ ){ scanf関数(" %dを"&[I]); 合計 + = [I]; } ソート(A + 1、+ 1 + ; N) のための(int型 I = 0 iが<=和; iが++ ) DP [N + 1 ] [I] = 0 ; int型 ANS = 0 ; DP [N + 1 ] [ 0] = 1 ; のための(INT I = N-; Iは> = 1 ; i-- ){ ため(INT J = 0 ; J <= SUM; J ++ ){ DP [I] [J]は DPを= [Iは、+ 1。] [ J]; IF(J>は= [{I])// ちょうど十分[I]の電流を増加させるために、及びJとして DP [I] [J] + DP = [Iは+ 1 ] [J- [I] ]; // 満たすDPは、[I] [j]は複数の光源を有することができるので、条件が複数のソースから選択する必要が添加前 IF(J> =(SUM-J)&& ABSを(J-(SUM-J ))<= A [I]) ANS + DP = [Iは+ 。1 ] [J- A [I]]。 ANS%= MOD。 } DP [I] [J]%= MOD。 } } のprintf(" %LLDを\ n " 、ANS)。 } 戻り 0 。 }