能用動規解決的問題的特點
1)問題具有最優子結構性質。如果問題的最優解所包含的子問題的解也是最優的,我們就稱該問題具有最優子結構性質。
2)無後效性。當前的若干個狀態值一旦確定,則此後過程的演變就只和這若干個狀態的值有關,和之前是採取哪種手段或經過哪條路徑演變到當前的這若干個狀態,沒有關係。
什麼是無後效性,看到乙個很好懂的解釋;
**)
某階段的狀態一旦確定,則此後過程的演變不再受此前各種狀態及決策的影響
現在有乙個四乘四的網格,左上角有乙個棋子,棋子每次只能往下走或者往右走,現在要讓棋子走到右下角假設棋子走到了第二行第三列,記為s(2,3),如下圖,畫了兩條路線和一條不符合題意的路線,那麼當前的棋子[s(2,3)位置]怎麼走到右下角和之前棋子是如何走到s(2,3)這個位置無關[不管是黑色尖頭的路線還是藍色箭頭的路線]
換句話說,當位於s(2,3)的棋子要進行決策(向右或者向下走)的時候,之前棋子是如何走到s(2,3)這個位置的是不會影響我做這個決策的。之前的決策不會影響了未來的決策(之前和未來相對於現在棋子位於s(2,3)的時刻),這就是無後效性,也就是所謂的「未來與過去無關」
看完了無後效性,那我們再來看看有後效性,還是剛才的例子,只不過現在題目的條件變了,現在棋子可以上下左右走但是不能走重複的格仔
那麼現在紅色箭頭就是乙個合法的路線了,當我的棋子走到了s(2,3)這個位置的時候,要進行下一步的決策的時候,這時候的決策是受之前棋子是如何走到s(2,3)的決策的影響的,比如說紅色箭頭的路線,如果是紅色箭頭決策而形成的路線,那麼我下一步決策就不能往下走了[因為題意要求不能走重複的格仔],之前的決策影響了未來的決策,」之前影響了未來」,這就叫做有後效性。
首先舉最長上公升子串行這個問題(poj百練2725)
樣例輸入
7 1 7 3 5 9 4 8
樣例輸出
4解題思路:
尋找乙個無後效性的子問題:求以a(k=1,2,3…n)為終點的最長上公升子串行的
長度。人人為我遞推型
#include#include#includeusing namespace std;
const int maxn=10100;
int a[maxn],maxlen[maxn];
int main()
for(int i=2;i<=n;i++)
} }cout我為人人遞推型
#include#include#includeusing namespace std;
const int maxn=1010;
int a[maxn],maxlen[maxn];
int main()
for(int i=1;i<=n;i++)
} }cout<
return 0;
}
最長公共子串行
#include#includeusing namespace std;
char s1[1010];
char s2[1010];
int maxlen[1010][1010];
int main()
for(int j=0;j<=l2;j++)
for(int i=1;i<=l1;i++)
else
}} cout神奇的口袋bailian2755
遞迴解決:列舉每個物體是選還是不選共2^20種情況
#includeusing namespace std;
int a[30];int n;
int ways(int w,int k)
int main()
cout
#include#includeusing namespace std;
int a[40],dp[50][50];//dp[w][k]從前k種武平中湊出體積w的方法數
int n;
int main()
dp[0][0]=1;
for(int w=1;w<=40;w++)}}
cout滑雪poj1088
人人為我dp
for(int i=1;iq[j].w)&&((abs(r2-rr)==1&&ll==l2)||(rr==r2&&abs(ll-l2)==1)))//注意只能高度減小才能滑落,高度相等是不能滑落的}}
printf("%d\n",mat);
}return 0;
}我為人人dp
MATLAB中一些基礎的公式
今天也給大家分享一些matlab常用的一些式子 clear all clcsyms q r t d0 建立符號變數 d d0exp q rt 符號變數 syms a b c d m a b c d b c d a c d a b d a c b 建立符號矩陣 collect s,x 按照冪次合併同類...
html中一些居中的問題
居中的問題 一 不定寬的文字和等內聯元素居中 定義它的父元素 text align center 二 定寬塊狀元素居中 定義它的margin 0 auto 使它的margin left,margin right為auto 三 不定寬的塊狀元素 1.加入 table 標籤 在想居中的塊狀元素外面加入t...
CSS中一些相容問題
1.img底部有一小段空白 加個邊框看看就知道了 解決 display block vertical align top middle bottom 不是baseline就行 2.ie6,float方向與margin方向一致時,margin會雙倍顯示 解決 display inline 3.ie6,...