參考:
剛開始,我想到了dp狀態的描敘,d(a,b,c,d) 從 4堆裡面拿走 a,b,c,d 的最優值,但是好難實現啊,dp順序感覺是可以用lcs的方案,但是,怎麼儲存自己口袋裡面有哪些呢? ——hash.
最後參考了一下大神的方案,記憶化寫的,orz.
嗯,像這種狀態轉移比較難寫的,還是用搜尋的思想好一點。
#include usingnamespace
std;
const
int maxn = 42
;int pile[4
][maxn];
intdp[maxn][maxn][maxn][maxn];
int n,top[4
];int dfs(int count,bool
hash)
else
top[i]-=1
; }
return dp[top[0]][top[1]][top[2]][top[3]] =ans;
}int
main()
return0;
}
動態規劃1011
problem description 有乙隻經過訓練的蜜蜂只能爬向右側相鄰的蜂房,不能反向爬行。請程式設計計算蜜蜂從蜂房a爬到蜂房b的可能路線數。其中,蜂房的結構如下所示。input 輸入資料的第一行是乙個整數n,表示測試例項的個數,然後是n 行資料,每行包含兩個整數a和b 0 output 對於...
10 11學習總結
現在補10.11的坑,假裝現在是10.11。今天繼續補lch講的動規的坑,學習了線性動規與區間動規,至於樹剖以後再補坑。1.線性動規 此處拓展到兩個比較重要的演算法 1 lcs最長公共子串行.狀態轉移方程為 f 1 1 0 f i j f i 1 j 1 1 x y f i j max f i 1 ...
10 11訓練總結
昨天的話,有一場5個題目的比賽,一開始就有一道題目,我錯了8次,心態小崩,還可以吧,最後總算是找到了錯誤的地方,其實是乙個很簡單的地方吧,還有就是後面的乙個仿造印章的題目,第一次接觸這種題型吧,看了各位大佬的部落格也算是學到了很多吧,有的時候判斷能否實現一張圖的時候,可以把可行的都放在另乙個圖中,然...