o(vn)的完全揹包,注意題目限制條件:物品總cost恰好達到v,一開始還優化了一下, 把val小cost大的物品去掉了,後來一想這樣會產生錯誤的結果
#include #include #include #include using namespace std;
const int inf = 0x3f3f3f3f;
const int maxn = 500 + 10;
const int maxv = 10000 + 10;
int t, n, v, dp[maxv];
struct item item[maxn];
int main()
for (int i = 1; i <= v; i++) dp[i] = inf;
for (int i = 1; i <= n; i++)
}if (dp[v] == inf) printf("this is impossible.\n");
else
}return 0;
}
完全揹包 HDOJ 1114 Piggy Bank
題目傳送門 題目大意是給出乙個錢罐,錢罐中的錢有一定的重量,同時給出一些硬幣,這些硬幣有自己的重量和價值 每種硬幣有無限個 求錢罐中錢的最少價值。狀態f i j 表示前i件物品放入空間為j的揹包所能取得的最大價值。狀態轉移方程 f i j max f i 1 j k c i k w i 0 k c ...
完全揹包 HDU 1114
今天看了看揹包九講的完全揹包。估計是因為只記住了方程,沒理解透的原因。照著寫,還是錯了 錯就錯在初始化的時候,我全部初始化為0了,然後用max 但是得不到答案。可是初始化出0位置以外,其他都為無窮大,取min,過了 額。去問問高手吧我。再研究了下,猛然回頭,發現,是求揹包裝滿的 最小價值 inclu...
HDU 1114 揹包問題
題意就是 給你一定的空間,一定種類的硬幣,每種硬幣可以重複使用多次,讓我們計算消耗這麼多的空間的最小質量 dp i 1 j 表示的就是從前i種硬幣中挑選質量小於j的最小價值 轉移方程 dp i 1 j min dp i j dp i 1 j w i v i 選取第i個 include include...