[ランチ] ZJOI2005

フェイス質問

https://www.luogu.org/problem/P2577

問題の解決策

#include <cstdioを> 
する#include <iostreamの> 
する#include <アルゴリズム> 
の#include <CStringの>
 使用して 名前空間STD。
構造体ノード{
   int型、B。
  ブール 演算子 <(constのノード&RHS)のconst {
     リターン B> rhs.b。
  } 
} T [ 250 ]。
const  int型 INF = 98765 ;
int型 N、ANS = INF。
int型の F [ 205 ] [ 40250 ]、合計[ 205 ]。

int型DP(int型のx、int型Y){
   場合(X> = 0 && Y> = 0 && Y <=和[X])戻り [X] [Y] F。それ以外 の戻りINF。
} 

int型のmain(){
   int型I、J。
  scanf関数(" %のD "、&N)
  和[ 0 ] = 0 (i = 1 ; iが<= N; iは++ ){ 
    scanf関数(" %d個の%のD "、&​​T [i]は.A、&T [i]は.B)。
  } 
  ソート(T + 1、T + N + 1);
  (i = 1 ; iが<= N; I ++)は和[I] =和[I- 1 ] + T [i]は.A。
  memsetの(F、0x3fをはsizeof (F))。
  F [ 0 ] [ 0 ] = 0 (i = 1 ; iが<= N; iは++ ){
       ため(J = 0 ; J <=和[I]; J ++)F [i]は[J] =分(MAX(DP(I- 1、JT [ I] .A)、J + T [i]は.B)、MAX(DP(I- 1、j)は、和[I] -j + T [i]は.B))。
  } 
  ANS = INF。
  (i = 0 ; iが<=和[N]; iは++)ANS = 分(ANS、F [n]は[I])。
  COUT<< ANS << てendl; 
}

 

おすすめ

転載: www.cnblogs.com/shxnb666/p/11427298.html