アルゴリズム:バイナリ最適化、動的プログラミング
書式#include <iostreamの> の#include <アルゴリズム> 書式#include <CStringの> 使用して 名前空間はstdを、 const int型 N = 2010 ; int型V [N]、[N]、W、CNT。 INT F [N]。 INTメイン(ボイド){ int型N、M。 CIN >> N >> M。 用(int型 I = 1、A、B、Sであり; iは<= N; iが++ ){ CIN >> A >> B >> S。 int型のk = 1 。 一方、(K <= S){ CNT ++; V [CNTは】 *の= Kと、 W [CNTは]のb * = Kと、 S - = K。 K * = 2 ; } もし、(S> 0 ){ CNT ++ 。 V [CNTは】 * = 秒; W [CNT] = B * S。 } } N = CNT。 以下のために(int型 i = 1 ; iが<= N; iは++ ){ ため(INT J = M; J> = V [i]は、j--){ F [J]= MAX([J]、F F [JV [I] + W [I])。 } } COUT [M] << F << ENDL。 リターン 0 ; }