POJ 2063 Investment(完全揹包)

2021-07-11 04:24:16 字數 884 閱讀 3861

poj 2063 investment

題意:

有m元本金,想要在銀行存year年,有n種可供選擇的存款方式,每種存款方式都有相應的本金val[i]和年獲利interst[i],

每年的獲利又可以作為下一年的本金繼續儲存。資料範圍:m<=1e6,year<=40,n<=10,val[i]是1000的倍數,年獲利不超過百分之10.

分析:

完全揹包。

因為val[i]是1000的倍數所以可以將本金和val[i]都除以1000,這樣既縮小了資料範圍,也節省了時間。

注意:

1.1的40次方是45.26,所以講m除以1000以後,陣列的大小應該不小於46000.

//776k 125ms

#include

#include

#include

using namespace std;

const int max_m=50000;

const int mod=1000;

int t,total,left,year,n;

int val[15],interest[15];

double dp[max_m];

int main()

while(year--)

}//printf("total=%d dp[%d]=%.3f\n",total,total,dp[total]);

total=(int)(dp[total]*mod+0.5)+left+total*mod;

}printf("%d\n",total);

}return

0;}

POJ 2063 Investment 完全揹包

完全揹包 這題很裸的完全揹包。不過居然還各種re和wa。首先是re 因為每次都會有利息,加上原來的本金之後的資金肯定是會大於原來的最大值。陣列開大個5倍就夠了。因為題意是利息不超過10 年數不超過40.這個隨便算下,或者開個足夠大就行。其次wa的原因 因為我在實現的時候,用了個變數extra去存不足...

POJ2063 完全揹包

題意 給乙個初始的錢,年數,然後給出每個物品的購買 與 每年獲得的利益,求在給出的年份後手上有多少錢。思路 揹包重量還是資金。dp 0 初始資金 重物的重量是他的 獲利是價值。這裡有n個物品,還有m年的問題,主要的問題是前i年的最大收益,然後在金額的基礎上對物品處理 記錄每次dp j 的值作為下一年...

POJ 2063 Investment 完全揹包

1.完全揹包問題 有n種物品,每種無限個,第i個物品的體積與價值分為v i 與w i 問體積為v的揹包能裝的最大總價值為多少。for int i 1 i n i for int j v i j v j d j max d j d j v i w i 發現完全揹包的迴圈和使用滾動陣列的0 1揹包只在i...