USACO3 1 2 總分 揹包問題動態規劃

2021-06-28 18:45:34 字數 1078 閱讀 7104

完全揹包問題。

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遍歷...