// 2つの変数があるPOJ 1018(DP)は、再び別の変数(重要)を探しているエッジの一定量とすることができる の#include <iostreamの> する#include <cstdioを> する#include <アルゴリズム> の#include <CStringの> に#define INFを(0x3f3f3f3f) 使用して 名前空間STDを、 int型 [DPを115 ] [ 1200 ]; // 最低価格jの帯域幅i番目のデバイスの前に INT )(主 { INT T、N-、M; CIN >> T; 一方、(T- - ) { memsetの(DP、INF、はsizeof (DP)); int型のB、P、 CIN >> N-。 以下のために(int型 i = 1 ; iは= N <; ++ I) { CIN >> M。 一方、(M-- ) { CIN >> B >> P。 もし(I == 1 ) DP [ 1 ] [B] =分(DP [ 1 ]、[B]、P)。 他の{ のための(int型 J = 0 ; J =!1200 ; ++ J) { // 对于每一个带宽 場合(DP [I-1 ] [J]!= INF)// 層最小帯域幅値を有する場合 、{ IF(J <= B) DP [I] [J] =分(DP [I]、[J]、DP [I - 1 ] [J] + P); 他の DP [I] [B] =分(DP [I]、[B]、DP [I- 1 ] [J] + P); } } } } } ダブル maxValueの= 0 ; のため(int型 I = 0を I =;!1200; ++ I) { ダブル TMP =(ダブル)I / DP [n]は[I]。 maxValueの = MAX(maxValueの、TMP)。 } のprintf(" %.3lfする\ n " 、maxValueの)。 } }