揹包DP 金字塔

2021-08-28 16:17:00 字數 1036 閱讀 7147

3007 – 【模擬試題】金字塔

description

小x來到乙個雄奇的金字塔挖寶,但是這是一座被詛咒的金字塔,小x必須馬上逃離這裡,否則小x就會被埋在金字塔裡,但他不希望此行落空。

現在小x面前有n+1種財寶,每種財寶都有乙個價值。第一種財寶重量為0,第二種財寶重量為1,總之第i種財寶重量為i-1。現在小x希望拿走n+m個物品,但是這m+n個物品總重量不能超過n。小x希望能獲得最大的價值。你能幫幫他嗎?

由於金字塔跟小x一樣牛,所以每種財寶無限個。

input

第一行兩個正整數n,m

第二行n+1個整數,第i個整數代表了第i種財寶的價值

output

乙個數,表示最大利潤。

sample input

5 34 7 2 5 -3 6

sample output

47hint

【資料範圍】:

10%滿足n,m<=10

40%滿足n,m<=100

100%滿足 n,m<=3000 abs(財寶價值)<=1000

直接看**就ok

#include#includeusing namespace std;

int f[3005],v[3005],n,m,zl[3005];

//我們在輸入時,對輸入的v[i]進行判定,如果輸入的比v[1]小,那麼在決策

//肯定用不到這個數(能用這個數為什麼不用v[1]呢,還0費)

//所以最後答案還要加上(n+m)*w

int main()

for(i=1;i<=num;i++)

for(j=zl[i];j<=n;j++)

if(f[j]printf("%d",f[n]+(n+m)*w);

return 0;

}

數字金字塔(dp)

考慮在下面被顯示的數字金字塔。寫乙個程式來計算從最高點開始在底部任意處結束的路徑經過數字的和的最大。每一步可以走到左下方的點也可以到達右下方的點。73 8 8 1 0 2 7 4 4 4 5 2 6 5 在上面的樣例中,從7 到 3 到 8 到 7 到 5 的路徑產生了最大和 30 第乙個行包含 r...

python 金字塔 Python金字塔

托倫,函式中有幾個小錯誤和乙個邏輯問題print y to a 請注意,此函式生成乙個以z開頭的字串,但您希望將字串以相反的方向連線,而您的另乙個函式print a to y 確實停止了 1位置 例如 還要注意,您需要新增新行字元 n 以獲得一些不錯的輸出。在 我的解決方案是 def print a...

字母金字塔(類同數字金字塔)

問題描述 讓程式要求使用者輸入乙個大寫字母,使用巢狀迴圈產生像下面這樣的金字塔圖案 aaba abcba abcdba abcdecba 演算法分析 每行包括三個部分內容 若干個空格 正序排列的字母 倒序排列的字幕。使用乙個外部迴圈來處理行,在每乙個行中使用三個內部迴圈 乙個處理空格,乙個以公升序列...