dp中一些的基礎問題

2021-08-25 17:28:06 字數 3185 閱讀 1074

能用動規解決的問題的特點

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,...