高川最喜歡的遊戲當屬 slay the spire,這是一款爬塔遊戲,你需要從一座塔的底部一直爬到頂部,在爬塔的過程中,塔的每一層都有許多的寶物等你來拿。
高川從塔的左側開始攀爬,從底部爬到頂部,再從右側從頂部逐步下到底部。塔總共有 n 層,每一層都有很多寶物從左到右排列。在左側攀爬時,他只能從每層的最左邊按順序取寶物,在右側下降時,他只能從每層的最右邊按順序取寶物。每個寶物都有乙個價值,他最多拿 m 個寶物,他想知道自己從塔上下來時,最多可以拿的寶物價值和是多少。
輸入描述:
第一行輸入兩個正整數 n 和m 。表示塔的層數和最多能選的個數。
接下來 n 行,每行先輸入乙個數字 x。表示這一層寶物的個數。接下來輸入 x 個正整數,表示每個寶物的權重 c。
1≤n,x,c≤100
1≤m≤10000
輸入保證可挑選的物品大於等於 m 個.
輸出描述:
輸出乙個整數表示高川能拿走的最大價值和.
示例1輸入
2 32 3 2
4 1 4 1 5
輸出10
#include
#define max(a, b) (a > b ? a : b)
long
long
int sum[
101]
[102
], num[
101]
[101
], f[
10001
], las[
101]
[102
], ans[
101]
[102];
int sz[
101]
, ch[
101]
;int
main()
}for
(i =
1; i < n +
1; i++)}
for(i =
1; i <= n; i++)}
}for
(i =
1; i <= n; i++
) f[j]
=max
(f[j]
, f[j - k]
+ ans[i]
[k])
;//printf("%d %d %d %d %d %lld %lld\n",n,i,sz[i],j,k,ans[i][k],f[j]);}}
}printf
("%lld\n"
, f[m]);
return0;
}
USACO 蛋糕塔(dp 分組揹包)
問題描述 hl高中要舉行一場蛋糕塔比賽。注意,不是蛋糕比賽,而是蛋糕塔比賽。學校會提供n種不同型別的蛋糕,第i種蛋糕的高度為hi 5 h i t 營養價值為vi 1 vi 1,000,000 並且保證所有蛋糕的高度為5的整數倍,每種型別的蛋糕沒有數量限制。蛋糕塔比賽的規則就是要求按照提供的蛋糕,壘成...
通天之分組揹包 分組揹包
本人水平有限,題解不到為處,請多多諒解 本蒟蒻謝謝大家 題目 傳送門 分組揹包的模板 偽 1 for int i 1 i 組數 i 6 7 直接套模板即可。code 1 include2 pragma gcc optimize 3 3const int n 1e5 10 4 using namesp...
混合揹包 分組揹包
啥是混合揹包呢,就是包含01揹包,完全揹包,多重揹包。有n件物品,揹包承重最大為m,w i 代表重量,v i 代表價值,s i 代表種類。s i 1,可用1次,s i 0,可用無限次,s i 0,可用s i 次.解法 見 const int maxn 1e4 5 int n,m,dp m 1 w n...