洛谷P2831 憤怒的小鳥 + 籃球比賽1 2

這三道題一塊兒作,有一點心得吧。學習

憤怒的小鳥,一眼看上去是爆搜,可是實現起來有困難(我打了0分出來)。spa

還有一種解法是狀壓DP。設計

拋物線一共只有那麼多條,咱們枚舉拋物線(枚舉兩個點),這樣就可以預處理出b[i][j]class

表示過點i,j的拋物線通過的點(狀壓)。搜索

而後寫了個記憶化搜索,枚舉每一個狀態是經過哪一個拋物線轉移而來(可能轉移後比現狀態通過的點要多,可是不影響答案正確性)比賽

那麼就這樣A了...co

論狀態壓縮的多種應用——籃球比賽2:數字

這題也是狀壓DP,可是DP的狀態設計很NB:壓縮

f[i][sta]表示前i我的拼出狀態sta的方案數。枚舉

而後不是枚舉如何轉移而來,而是從這個點向後轉移,也就是所謂的刷表法。枚舉當前狀態下一我的的取值而後轉移。

籃球比賽1:

f[i][j]表示前i我的 ^ 出數字j的方案數,日後轉移。

g[i][j]表示後i我的 & 出數字j的方案數,日後轉移。

真神了。。。

如何肯定一道題要狀態壓縮?不肯定...憑感受啊!題作多了就行了吧。

主要是學習了這種形式的狀態的刷表法。

其餘的大多數狀壓DP基本上都可以記憶化搜索,不用本身想DP順序。

 

還有,DP有兩種方式:第i個在決策中 和不必定在。

貌似大部分都是把第i個算做在,而後前綴和處理。

可是仍是要具體狀況具體分析。

相關文章
相關標籤/搜索