ctest有n個蘋果,要將它放入容量為v的揹包。給出第i個蘋果的大小和價錢,求出能放入揹包的蘋果的總價錢最大值。
有多組測試資料,每組測試資料第一行為2個正整數,分別代表蘋果的個數n和揹包的容量v,n、v同時為0時結束測試,此時不輸出。接下來的n行,每行2個正整數,用空格隔開,分別代表蘋果的大小c和價錢w。所有輸入數字的範圍大於等於0,小於等於1000。
對每組測試資料輸出乙個整數,代表能放入揹包的蘋果的總價值。
3 3
1 1
2 1
3 1
0 02
典型的動態規劃的題目,跟01揹包問題一樣。填寫備忘錄,遞推公式如下: dp
[i][
j]= for (int i = 1; i <= n; i++)
else}}
printf("%d\n",dp[n][v]);
scanf("%d%d",&n,&v);
}return
0;}
#include
#include
int result[1005];
int main()
memset(result,0,sizeof(result));
for (i=1;i<=n;i++)
for(j=v;j>=weight[i];j--)
if (result[j-weight[i]]+value[i]>result[j])
result[j] = result[j-weight[i]]+value[i];
printf("%d\n",result[v]);
}return
0;}
由源**可知,兩層迴圈,第一層迴圈遍歷所有蘋果,第二層迴圈遍歷揹包容量,故演算法時間複雜度為o(n * v)。 南陽 289 蘋果(0 1揹包問題)
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 ctest有n個蘋果,要將它放入容量為v的揹包。給出第i個蘋果的大小和價錢,求出能放入揹包的蘋果的總價錢最大值。輸入 有多組測試資料,每組測試資料第一行為2個正整數,分別代表蘋果的個數n和揹包的容量v,n v同時為0時結束測試,...
nyoj289蘋果(01揹包)
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 ctest有n個蘋果,要將它放入容量為v的揹包。給出第i個蘋果的大小和價錢,求出能放入揹包的蘋果的總價錢最大值。輸入 有多組測試資料,每組測試資料第一行為2個正整數,分別代表蘋果的個數n和揹包的容量v,n v同時為0時結束測試,...
nyoj 蘋果 289 (簡單01揹包)
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 ctest有n個蘋果,要將它放入容量為v的揹包。給出第i個蘋果的大小和價錢,求出能放入揹包的蘋果的總價錢最大值。輸入 有多組測試資料,每組測試資料第一行為2個正整數,分別代表蘋果的個數n和揹包的容量v,n v同時為0時結束測試,...