藍橋杯(跳躍)問題

2022-09-22 01:09:10 字數 1252 閱讀 3704

博主在某dn上搜尋了很多的文章,才理解並且根據思路寫出的**。

這個問題也是揹包問題,動態的規劃問題------稱作揹包問題。

博主也是乙個小白,第二次接觸揹包的問題,本篇文章錯誤之處還請指出

n件物品和乙個容量是v的揹包。每件物品只能使用一次。第i件物品的體積是vi,價值是wi。求解將哪些物品裝入揹包,可使這些物品的總體積不超過揹包容量,且總價值最大。

解法:

當我們想要獲得第i件物品裝進揹包的最大價值時。我們只需要確定揹包裡的i-1個物品達到了最大價值。依次遞迴向前推導。

而問題是,我們如何判斷那個是最優選擇。

重點:

當我們要獲得最優解時,那麼每次獲得選擇時,都應在本條件下選擇最優的那個。所以每次在選擇時,我們就要進行對比!

#includeusing namespace std;

long long m,n;

int ans;

//這裡設定的是條件就相當於(x,y)座標根據題目條件做出的約束,移動的直線距離不能超過3

//因為每次的搜尋都得是和前乙個比,並且題目要求座標要比前乙個大,所以y的座標這樣設定

int x[9] = ;

int y[9] = ;

int dpf[110][110];

int main()

}//這裡就類似於乙個最優選擇的節點,在本次的最優選擇下,再次進行遞迴比較選擇最優解

if(ans!=int_min) dpf[i][j] += ans;

}} //輸出答案

cout << dpf[m][n] <

return 0;

}

藍橋杯 正則問題

題目描述 考慮一種簡單的正規表示式 只由 x 組成的正規表示式。小明想求出這個正規表示式能接受的最長字串的長度。例如 xx x x xx xx 能接受的最長字串是 長度是6 輸入 xx x x xx xx 程式應該輸出 6 思路 遇到 就遞迴呼叫函式,遇到 a 就將計數器x 遇到 就選出左右最大值,...

藍橋杯 日期問題

問題描述 小明正在整理一批歷史文獻。這些歷史文獻中出現了很多日期。小明知道這些日期都在1960年1月1日至2059年12月31日。令小明頭疼的是,這些日期採用的格式非常不統一,有採用年 月 日的,有採用月 日 年的,還有採用日 月 年的。更加麻煩的是,年份也都省略了前兩位,使得文獻上的乙個日期,存在...

藍橋杯 遞迴問題

深入遞推,逐級回退 遞迴問題 深搜dfs 在有條件的情況下試探各種情況 找出口 遞迴的終止條件 遞迴函式引數邊界值的界定 思想 1.src上的n 1個盤子移到medium 2.src剩下的乙個最大的盤子移到dest 3.medium上的n 1個盤子移到dest 把src最上面的乙個盤子移到dest ...