L3 簡單動態規劃

2021-10-08 17:00:31 字數 3138 閱讀 5246

小例子

上樓梯

硬幣問題

// coin_1

#include

using

namespace std;

const

int maxn=

1e5+7;

int f[maxn]

;// 全域性變數預設賦初值為0

intmain()

printf

("f[%d] = %d\n"

, i, f[i]);

return0;

}

lis問題

// lis_1

#include

using

namespace std;

const

int maxn=

1e5+7;

int a[maxn]

=, n=8;

int f[maxn]

;int

main()

return0;

}

狀態

轉移

// stage_2

#include

using

namespace std;

const

int maxn=

1e5+7;

int f[maxn]

;int

main()

return0;

}

// coin_2

#include

using

namespace std;

const

int maxn=

1e5+7;

int f[maxn]

;int

main()

return0;

}

// lis_2

#include

using

namespace std;

const

int maxn=

1e5+7;

int a[maxn]

=, n=8;

int f[maxn]

;int

main()

return0;

}

例題:

// 我從**來_遞推版

#include

using

namespace std;

const

int maxn=

1e5+7;

int dp[maxn]

, n;

intmain()

cout<

}// 我從**來_遞迴版

#include

using

namespace std;

const

int maxn=

1e5+7;

int dp[maxn]

, n;

intdp

(int n)

intmain()

// 我從**來_遞迴_記憶版

#include

using

namespace std;

const

int maxn=

1e5+7;

int dp[maxn]

, n;

intdp

(int n)

intmain()

b. 我到**去: (已知 x)(這時需要特別判斷 n 的大小關係,即陣列是否越界)

// 我到**去

#include

using

namespace std;

const

int maxn=

1e5+7;

int dp[maxn]

, n;

intmain()

cout<;return0;

}// 我到**去_封裝版

#include

using

namespace std;

const

int maxn=

1e5+7;

int dp[maxn]

, n;

void

update

(int pos,

int x)

intmain()

cout<;return0;

}dp三連(做題時思考方向)

小結:總結上面的內容。如果我們想用大事化小的思想解決乙個問題,我們需要:

記憶化特別常用!!只要遞迴只和 n 有關,與別的東西無關,就可以考慮記憶化,讓每乙個呼叫只會被計算一次

記憶化搜尋:呼叫 fun(x) 時:

以斐波那契數列為例:

// fib_mem

#include

using

namespace std;

// 斐波那契數列是乙個指數級的複雜度

// 怎樣優化到o(n)呢?--> 引入乙個記憶化

// 優化後

const

int maxn=

1e5+7;

int mem[maxn]

;int

fib(

int n)

/*int fib(int n)

*/int

main()

// coin_mem

// 從哪來,更好寫記憶化(更接近遞迴形式)

#include

using

namespace std;

const

int maxn=

1e5+7;

int mem[maxn]

;bool vis[maxn]

;// 有沒有被記憶過,適用於mem陣列的值(答案的解)有可能為0的情況

intf

(int n)

intmain()

記憶化搜尋的優勢:

記憶化搜尋的模板題:洛谷 p1464 總結

決策類的 dp,設計狀態時,需要滿足兩個原則:

L3匯流排介面

下面介紹一下l3匯流排介面 一些codec 晶元中使用,eg uda1341 l3就是line 3 3條線 的意思,它只有l3data 資料線 用於傳輸資料 l3mode 模式線 用於選擇模式 l3clock 時鐘線 用於傳輸時鐘 l3一共有兩個模式 位址模式和資料傳輸模式,先傳輸位址模式資料,再傳...

L3級自動駕駛

l3級自動駕駛 2020年開年 3月9日,工信部在其官網公示了 汽車駕駛自動化分級 推薦性國家標準報批稿,並擬於2021年1月1日開始實施。按照中國自身標準制定的自動駕駛分級標準,在千呼萬喚中終於落地。中國自動駕駛分級 公示版 行業的反應足夠熱烈。標準公示次日,長安正式發布量產l3級有條件自動駕駛系...

Scatter Gather I O在L3中的應用

a 圖中,第乙個sk buff跟不支援scatter gather i o的情況一樣,而當再次追加資料時,情況則不同。kernel會申請乙個page buffer,將新的資料填入這個page,同時讓sk buff skb shingo frags指向這個page,並置上正確的偏移。frags 0 的...