滾動陣列和狀態壓縮 金馬五校 什麼 的K序列

2021-08-19 03:36:56 字數 935 閱讀 1228

先占個坑吧...還有,csdn裡我打這麼多空格好難受- -(才不會說我是寫字板裡粘過來的)

滾動陣列的作用在於優化空間,主要應用在遞推或動態規劃中(如01揹包問題)。因為dp題目是乙個自底向上的擴充套件過程,我們常常需要用到的是連續的解,前面的解往往可以捨去。所以用滾動陣列優化是很有效的。利用滾動陣列的話在n很大的情況下可以達到壓縮儲存的作用。

出處(星號)

是啊是啊!想想之前揹包裡面前面的似乎是更新過就用不到了(當他被更新了之後)

是啊是啊!斐波那契這個是遞增的!

(優化空間..時間沒啥用所以)

常常用於dp...

這個**有點重要!

乙個dp,平常如果需要1000×1000的空間,其實根據dp的無後效性,可以開成2×1000,然後通過滾動,獲得和1000×1000一樣的效果。滾動陣列常用於dp之中,在dp過程中,我們在由乙個狀態轉向另乙個狀態時,很可能之前儲存的某些狀態資訊就已經無用了,例如在01揹包問題中,從理解角度講我們應開dp[i][j]的二維陣列,第一維我們存處理到第幾個物品,也就是階段了,第二維儲存容量,但是我們獲得dp[i],只需使用dp[i - 1]的資訊,dp[i - k],k>1都成了無用空間,因此我們可以將陣列開成一維就行,迭代更新陣列中內容,滾動陣列也是這個原理,目的也一樣,不過這時候的問題常常是不可能縮成一維的了,比如乙個dp[i][j]需要由dp[i - 1 ][k],dp[i - 2][k]決定,i(講的好清楚啊!!!所以貼一下..)

原**找不到了... 甩兩張圖先占個坑走人- --

還會回來的!...

我只是占個坑而已!!!(怕之後又忘了所以聊勝於無吧= =)

poj 2441 狀態壓縮 滾動陣列 剪枝DP

題意 有n 20 只牛和m 20 個籃球場,每個籃球場只能乙隻牛打,然後每只牛都有自己喜好的籃球場。現在問有多少種分配方法使得每只牛都能在自己喜歡的籃球場打球,並且這個球場只有它乙隻牛。解析 首先是狀壓 dp i state 表示的是第i隻牛球場狀態為state時的分配方法數。狀態轉移方程也很好推 ...

0 1揹包使用滾動陣列壓縮空間

所謂滾動陣列,目的在於優化空間,從上面的解法我們可以看到,狀態轉移矩陣使用的是乙個n v的陣列,在求解的過程中,我們可以發現,當前狀態只與前一狀態的解有關,那麼之前儲存的狀態資訊已經無用了,可以捨棄的,我們只需要空間儲存當前的狀態和前一狀態,所以只需使用2 v的空間,迴圈滾動使用,就可以達到跟n v...

康托展開和狀態壓縮

把乙個整數x展開成如下形式 x a n n 1 a n 1 n 2 a i i 1 a 2 1 a 1 0 其中,a為整數,並且0 a i 康托展開的應用例項 表示1,2,3,n的排 列如 按從小到大排列一共6個。123 132 213 231 312 321 代表的數字 1 2 3 4 5 6 也...