牛客網總結 動態規劃

2021-10-03 10:30:43 字數 1460 閱讀 7543

目錄

重要資料

c++面試題系列

牛客力扣

nc121:字串的排列

華為機試

hj16:購物單

hj24合唱隊

hj61放蘋果???

dd大牛的《揹包九講》

演算法萌新如何學好動態規劃(3)

動態規劃之揹包問題系列

c++面試題系列290題

計算字串相似度

字串的排列和組合問題

nc126_換錢最少貨幣數

nc116_把數字翻譯成字串

有依賴的揹包問題,參考

小資料的有依賴揹包問題,可以直接轉為分組揹包問題。(搜「揹包九講完整版.pdf」有詳細講解)

0-19分鐘

dd大牛的揹包九講

首先計算每個數在最大遞增子串中的位置

186 186 150 200 160 130 197 200 quene

1 1 1 2 2 1 3 4 遞增計數

然後計算每個數在反向最大遞減子串中的位置--->計算反向後每個數在最大遞增子串中的位置

200 197 130 160 200 150 186 186 反向quene

1 1 1 2 3 2 3 3 遞減計數

然後將每個數的遞增計數和遞減計數相加

186 186 150 200 160 130 197 200 quene

1 1 1 2 2 1 3 4 遞增計數

3 3 2 3 2 1 1 1 遞減計數

4 4 3 5 4 2 4 5 每個數在所在佇列的人數+1(自己在遞增和遞減中被重複計算)

如160這個數,

在遞增佇列中有2個人數

150 160

在遞減佇列中有2個人數

160 130

那麼160所在佇列中就有3個人

150 160 130

每個數的所在佇列人數表達就是這個意思

總人數 - 該數所在佇列人數 = 需要出隊的人數

* 放置蘋果的方法數

* 演算法思想:放蘋果有兩種情況,一種是有盤子為空,一種是每個盤子中都有蘋果

* 令(m,n)表示將m個蘋果放入n個盤子中的擺放方法總數

* 1.假設有1個盤子為空,則(m,n)問題轉化為將m個蘋果放在n-1個盤子上,即求得(m,n-1)

* 2.假設所有的盤子都裝有蘋果,則每個盤子上至少有乙個蘋果,即還剩下m-n個蘋果,

* 問題轉化為將m-n個蘋果放到n個盤子上的擺放方法總數,即(m-n,n)

牛客 拜訪 動態規劃

左右中只能選乙個方向,若選擇左只能一直向左走。上下中只能選擇乙個方向,若選擇下只能一直向下。所以有2種情況 1 二者位置在對角線上 2 兩者位置重合或處於同一行或同一列 class visit if map i j 2 同行或同列 這裡應該還能優化到下面的對角線那種情況 懶 if si ei if ...

牛客網 動態規劃(C ) 合唱團

有 n 個學生站成一排,每個學生有乙個能力值,牛牛想從這 n 個學生中按照順序選取 k 名學生,要求相鄰兩個學生的位置編號的差不超過 d,使得這 k 個學生的能力值的乘積最大,你能返回最大的乘積嗎?include include include include using namespace std...

字串交錯組成 牛客網,動態規劃

對於三個字串a,b,c。我們稱c由a和b交錯組成當且僅當c包含且僅包含a,b中所有字元,且對應的順序不改變。請編寫乙個高效演算法,判斷c串是否由a和b交錯組成。給定三個字串a,b和c,及他們的長度。請返回乙個bool值,代表c是否由a和b交錯組成。保證三個串的長度均小於等於100。測試樣例 abc ...