這三道題一塊兒作,有一點心得吧。學習
憤怒的小鳥,一眼看上去是爆搜,可是實現起來有困難(我打了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個算做在,而後前綴和處理。
可是仍是要具體狀況具體分析。