1. 程式人生 > >各種背包的dp刷題板

各種背包的dp刷題板

所有 strong blog 復雜 獲得 時間復雜度 01背包 ron 刷題

[p1332][NYOJ skiing] 滑雪 (dp+搜索)

[p1312] [vjios1448 路燈改建計劃] 關燈問題 (背包預處理的分組背包) f[i][j]表示給把前i個燈分為j組可以獲得的最大照明度 g[i][j]表示第i盞燈到第j盞燈分為一組在滿足前提條件下的最大照明度 在預處理g[i][j]的i循環內,
用一個d[x][y]數組先預處理出:
[i,x]內所有編號的燈總耗電量y時的最大照明度(y的上限顯然為(n-i+1)*t)
然後g[i][j]=d[j][(j-i+1)*t]即可得到g.
預處理的時間復雜度為O(n^3*(t/2+1))
[p1310] 神仙開山 (多維01背包,通過進制表示狀態)
[p1316] 積木遊戲(背包)根據規則從後向前掃 g[ i ][ j ][ w ] 表示從i到j分為一組i的第w面向下時的最大高度 為了方便,應該將將每個積木的三邊都按大小排序,這樣只需要上下兩面的大邊分別相比/小邊分別相比. [p1316] 積木遊戲(背包)根據規則從後向前掃

各種背包的dp刷題板