一開始以爲是貪心
後來通過樣例數據看不是的(良心的樣例)
所以就用了DP
其實我還是不明白爲什麼不是貪心
有大神能解答一下嗎~~~
這個動態轉移方程很接近於01揹包
包括我看到的很多題解 也都說這就是01揹包
但我以爲 這兩者僅僅是類似而非一樣
我以爲
做動規題目 不能簡單簡單地想着套幾個模型
而是要不斷地從每一個狀態來分析
(當然啦 我的愚見)
//P2639 [USACO09OCT]Bessie的體重問題
//2016.11.18
#include <cstdio>
#include <iostream>
using namespace std;
int h, n;
int f[45000], w[500 + 1];
int main(){
scanf("%d%d", &h, &n);
for (int i = 1; i <= n; i++)
scanf("%d", &w[i]);
for (int i = 1; i <= n; i++)
for (int j = h; j >= w[i]; j--) //特別注意 j要大於等於w[i] 因爲一會兒要相減!!!
f[j] = max(f[j], f[j - w[i]] + w[i]);
printf("%d", f[h]);
return 0;
}