當前位置:編程學習大全網 - 網站源碼 - c++ 背包入門題

c++ 背包入門題

#include?<iostream>

#include?<algorithm>

#include?<cstring>

using?namespace?std;

int?dp[20001][30];

int?getdp(int?restV,?int?index,?int?n,?int?volumn[])?{

if?(index?==?n)?return?0;

if?(dp[restV][index]?>=?0)?{

return?dp[restV][index];

}

dp[restV][index]?=?getdp(restV,?index?+?1,?n,?volumn);

if?(restV?>=?volumn[index])?{

dp[restV][index]?=?max(dp[restV][index],?volumn[index]?+?getdp(restV?-?volumn[index],?index?+?1,?n,?volumn));

}

return?dp[restV][index];

}

int?main()?{

int?V,?n;

int?volumn[30];

cin?>>?V?>>?n;

for?(int?i?=?0;?i?<?n;?i++)?{

cin?>>?volumn[i];

}

memset(dp,?-1,?sizeof(dp));

cout?<<?V?-?getdp(V,?0,?n,?volumn)?<<?endl;

}

  • 上一篇:Android 裏的手勢監聽SimpleOnGestureListener 綁定到LinearLayout 或 RelativeLayout 不觸發 onFling()
  • 下一篇:求高手將此主升公式改為選股公式(通達信)清倉:=1.66*MA(FORCAST(CLOSE,2),40),COLORRED; 出貨:=1.36*MA(
  • copyright 2024編程學習大全網