hihocoder第七周 完全揹包模板題

2022-04-28 23:48:17 字數 1203 閱讀 3261

時間限制:20000ms

單點時限:1000ms

記憶體限制:256mb

描述且說之前的故事裡,小hi和小ho費勁心思終於拿到了茫茫多的獎券!而現在,終於到了小ho領取獎勵的時刻了!

等等,這段故事為何似曾相識?這就要從平行宇宙理論說起了………總而言之,在另乙個宇宙中,小ho面臨的問題發生了細微的變化!

小ho現在手上有m張獎券,而獎品區有n種獎品,分別標號為1到n,其中第i種獎品需要need(i)張獎券進行兌換,並且可以兌換無數次,為了使得辛苦得到的獎券不白白浪費,小ho給每件獎品都評了分,其中第i件獎品的評分值為value(i),表示他對這件獎品的喜好值。現在他想知道,憑藉他手上的這些獎券,可以換到哪些獎品,使得這些獎品的喜好值之和能夠最大。

提示一: 切,不就是0~1變成了0~k麼

提示二:強迫症患者總是會將狀態轉移方程優化一遍又一遍

提示三:同樣不要忘了優化空間哦!

輸入每個測試點(輸入檔案)有且僅有一組測試資料。

每組測試資料的第一行為兩個正整數n和m,表示獎品的種數,以及小ho手中的獎券數。

接下來的n行描述每一行描述一種獎品,其中第i行為兩個整數need(i)和value(i),意義如前文所述。

測試資料保證

對於100%的資料,n的值不超過500,m的值不超過10^5

對於100%的資料,need(i)不超過2*10^5, value(i)不超過10^3

輸出對於每組測試資料,輸出乙個整數ans,表示小ho可以獲得的總喜好值。

樣例輸入

5 1000

144 990

487 436

210 673

567 58

1056 897

樣例輸出

5940

因為要優化記憶體,所以開了一維陣列,覺得開二維陣列占用空間太大,可能要崩!(100000*500)!!!

#include #include int f[100002];

int c[600];

int w[600];

int max(int a, int b)

int main()

memset(f, 0, sizeof(f));

for(j=1; j<=n; j++)}}

printf("%d\n", f[m] );

}return 0;

}

hihocoder 完全揹包

小ho現在手上有m張獎券,而獎品區有n種獎品,分別標號為1到n,其中第i種獎品需要need i 張獎券進行兌換,並且可以兌換無數次,為了使得辛苦得到的獎券不白白浪費,小ho給每件獎品都評了分,其中第i件獎品的評分值為value i 表示他對這件獎品的喜好值。現在他想知道,憑藉他手上的這些獎券,可以換...

第七周作業 揹包問題

揹包問題 是一種組合優化的np完全問題 問題可以描述為 給定一組物品,每種物品都有自己的重量和 在限定的總重量內,我們如何選擇,才能使得物品的總 最高。思想 特點是 每種物品僅有一件,可以選擇放或不放用子問題定義狀態 即f i v 表示前i件物品恰放入乙個容量為v的揹包可以獲得的最大價值。則其狀態轉...

HihoCoder 1043 完全揹包

華電北風吹 天津大學認知計算與應用重點實驗室 2016 06 24 題目分析 01揹包的完全揹包問題,思路跟01揹包類似,只是更新的時候對所有的容量狀態全部更新。problem1043.cpp 定義控制台應用程式的入口點。1043 完全揹包 張正義 2016 04 12 include stdafx...