完全揹包問題。
f[i][j]表示用前j個物品,放滿i的空間,能取得最大價值。 f[i][j] =max f[i - a[p]]j - 1] + b[p]
j按順序用的話,陣列第二維可以壓掉。即為f[i] = max f[i - a[p]] + b[p]
executing...test 1: test ok [0.008 secs, 3484 kb]
test 2: test ok [0.008 secs, 3484 kb]
test 3: test ok [0.008 secs, 3484 kb]
test 4: test ok [0.005 secs, 3484 kb]
test 5: test ok [0.019 secs, 3484 kb]
test 6: test ok [0.032 secs, 3484 kb]
test 7: test ok [0.057 secs, 3484 kb]
test 8: test ok [0.119 secs, 3484 kb]
test 9: test ok [0.230 secs, 3484 kb]
test 10: test ok [0.221 secs, 3484 kb]
test 11: test ok [0.003 secs, 3484 kb]
test 12: test ok [0.003 secs, 3484 kb]
all tests ok.
n^2的演算法居然挺快的。
大量讀入,getcahr目測要快更多?
/*
task:inflate
lang:c++
*/#include #include #define max(a,b) ((a)>(b)?(a):(b))
int m, n;
int a[10001], b[10001];
int c[10001], ans = -1;
int main()
} printf("%d\n", ans);
return 0;
}
USACO動態規劃之揹包問題1
序言 dp太辣雞所以要刷題!做完usaco裡dp專題的所有題!然而還有數字dp插頭dp的都還不會qwq 題目 題解 一 subset sums,usaco 1998 spring 解題思路 因為平分,所以以和的一半當總容量做01揹包。答案除以2,因為會重複算一次 include include in...
動態規劃揹包問題 01揹包
問題描述 n種物品,每種乙個。第i種物品的體積為vi,重量為wi。選一些物品裝到容量為c的揹包,使得揹包內物品不超過c的前提下,重量最大。問題分析 宣告乙個f n c 的陣列。f i j 表示把前i件物品都裝到容量為j的揹包所獲得的最大重量。當 j v i 時,揹包容量不足以放下第 i 件物品,f ...
動態規劃揹包問題 完全揹包
問題描述 有n種物品,每種均有無窮多個。第i個物品的體積為vi,重量為wi。選一些物品裝到容量為c的揹包中,使得揹包內物品在總體積不超過c的前提下重量盡量大。問題分析 開乙個陣列f i j 表示前i種物品中選取若干件物品放入剩餘空間為j的揹包中所能得到的最大重量。每種物品無窮個,所以還要有乙個k遍歷...