狀態:從[i][j]開始的最小開銷
轉移:dp[i][j]=min(dp[i+1][(j-1)%m],dp[i][j+1],dp[i+1][(j+1)%m]
現在的問題是,我們如何求出字典序最小?
有個規律請牢記:
正序前驅最小,逆序後繼最小。可能有些不太明白是什麼意思,不過我們不妨設想一下,逆推就是從後往前,所以這樣才能保證字典序。換句話說,逆推可以保證字典序最小。
具體實現上,十分神奇:
int row[3]=;
if(i==0) rows[1]=m-1;
if(i==m-1) rows[2]=0;
sort(rows,rows+2);
dp[i][j]=inf;
for(int k=0;k<3;++k)
用乙個row陣列儲存所有的三種情況,而乙個sort巧妙的實現了字典序處理的工作。而next陣列可以將字典序儲存起來方便讀取。
從乙個新的角度來看看完全揹包:dag。
相當於乙個帶權的dag,因此
dp[i]=max
這個東西不想多說,因為每個人都比較熟練。
滾動陣列不方便列印字典序。
嗯…不想說什麼了
總之這次的比較熟悉吧…所以略微過得快一些好了。接下來是線性dp,例題大概會比較刺激吧。
劉書學習筆記(4)線性結構上的dp(上)
dp i max 1 a i a j dp i j dp i 1 j 1 1 否則 dp i j max dp i 1 j dp i j 1 比較蛋疼的語文題 如果語文比較好幾乎是裸lis 雖說大概需要糾結一下常係數 dp i min dp j 1 s j 1 i 為回文串 並不太明顯的lis,不過...
花書學習筆記 雜記
關於貝葉斯學派和頻率學派的問題 每次提到貝葉斯學派和頻率學派的不同之處時,人們都會使用這個例子 給定資料集xda ta x xd ata 如果我們想要確定某乙個引數 theta 頻率學派的做法是arg max mathop limits theta argmax 也就是說 認為 theta 是乙個確...
紫書學習筆記(1)
這幾天雜七雜八的事情太多,再加上進入了考試周,所以很難有時間安安靜靜的敲敲 看看書,寫寫部落格了。最近寫了一些oj的題目,但是寫到這個份上,發現有些做不動了。因為自己沒有很系統的看過一些演算法競賽書,所以很多時候時間複雜度和空間複雜度都控制不好,所以就想寫一寫前段時間買的劉汝佳的紫書,也就是 演算法...