題目289 蘋果

2021-08-08 21:23:23 字數 898 閱讀 1445

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時結束測試,...