洛谷p1616瘋狂的採藥

2021-10-03 01:51:04 字數 1058 閱讀 5468

這是個樸實無華的名字,所以下面是一篇樸實無華的文章,請大牛們輕噴

洛谷上這道題確實很瘋狂。

其實這是一道完全揹包的板子題,但有兩點需要注意:

所以,獻上第一次全wa**:

#includeusing namespace std;

int f[105][105],w[105],c[105];//直接用的板子,陣列開的不夠大re,卒

int main()

for(int i=1;i<=n;i++)

} cout《所以,我又該套了完全揹包的模板,但是我雙忘了陣列開大,卒。

#includeusing namespace std;

const int maxm = 201;

const int maxn = 31;

int m, n;

int w[maxn], c[maxn];

int f[maxn][maxm];

int main()

} printf("max=%d",f[n][m]);

return 0;

}

所以,我終於開大了陣列。

#includeusing namespace std;

const int maxm = 10005;

const int maxn = 10005;

int m, n;

int w[maxn], c[maxn];

int f[maxn][maxm];

int main()

} printf("max=%d",f[n][m]);

return 0;

}

但是我叒忘了開一億的陣列是要去見祖宗的

所以,才有了最終的**(解釋見程式注釋);

#include #include using namespace std;

int i,j,t,m,t[10001],p[10001],f[100001];//陣列容量多訂乙個海闊天空

int main()

洛谷 P1616 瘋狂的採藥

題目概述 給定時間t,草藥數n,採每組草藥所需的時間a i 和該組草藥的價值b i 求在給定的時間內能採到的草藥的最大價值。每種草藥可以無限採。n 10000,且n t 10 7 解題思路 我們知道,對於這類揹包問題,時間複雜度為 n t 在題目所給的範圍內不會超時,方法與01揹包一致,不過掃瞄的順...

洛谷P1616 瘋狂的採藥

完全揹包,可以用乙個常數優化,對於同乙個價值的量,僅儲存花費最小的那個就行了,因為每種都有無限多個。includeusing namespace std int n,v int c 10005 w 10005 int d 100005 int mincost 10005 pos void compl...

洛谷P1616 瘋狂的採藥 基礎DP

題意 給t時間和m種草藥,每種草藥給出採摘用時及價值,每種都可以無限採摘,求出在給定時間可以得到的最多價值 思路 揹包問題,用dp思想很容易想到o t 的方法,轉移方程dp i max dp i dp i j dp j 就是用小於當前價值的所有時間求出當前時間的最大價值 include includ...