學大偉業 Day 4 培訓總結

2022-05-05 21:30:09 字數 1588 閱讀 3487

今天講的全是dp...

不多廢話,先看一道經典的模板lis(最長不下降子串行)

一.lis

給定乙個長度為n的數列,求最長上公升子串行

例:1 7 2 8 3 4

答案:1 2 3 4

**:

1 #include //

突然想用萬能庫 23

using

namespace

std;45

const

int maxn = 100000;6

int n, data[maxn], dp[maxn], from[maxn];//

方案 7

void output(intx)8

13int

main()

1429

} 30}

3132

int ans = dp[1], pos = 1;33

for(int i = 1; i <= n; i++)

34if(ans 35

39 cout40output(pos);

41return0;

42 }

二.揹包問題

揹包就不多講了,揹包九講裡面非常明白了,也是很基礎的dp

n個物品,每個物品有價值和體積兩個屬性

從中選出若干個物品,體積和不超過v 要求選出的物品價值和最大

每個物品只能選一次(01揹包)

體積可能是多維(多維揹包)

物品可以被選的次數可能是有限次或者無限次(完全揹包)

物品之間可能存在依賴(依賴揹包)

三.st表

思想:倍增、dp(狀態轉移方程: f[i,j] = min/max (f[i,j - 1],f[i + 2^(j - 1),j - 1])   )

功能:求任意區間的最大值

要求:靜態的,無法修改資料

空間複雜度:o(nlogn)

時間複雜度:o(nlogn) – o(1)

#include #include 

using

namespace

std;

intconst maxn = 1000000

;int st[maxn][20

], a[maxn], ans[maxn];

intn, m, left, right, j, i;

intmain()

for(j = 1; (1

<)

for(i = 1; i <= n-(1

<1; i++)

st[i][j] = min(st[i][j-1] , st[i+( 1

<<(j-1) )][j-1

]);

for(i = 1; i <= m; i++)

for(i = 1; i <= m; i++)

printf(

"%d

",ans[i]);

return0;

}

還有一部分...待我再細細思考總結...(說白了就是現在還不太明白)

工程時間培訓Day4

89的改變 1 增加restrict指標 c99中增加了公適用於指標的restrict型別修飾符,它是初始訪問指標所指物件的惟一途徑,因此只 有借助restrict指標表示式才能訪問物件。restrict指標指標主要用做函式變元,或者指向由malloc 函式所分配的記憶體變數。restrict資料型...

學大偉業 2017 國慶 Day1

期望得分 100 100 20 220 實際得分 100 100 20 220 好久沒有期望 實際了 對於 a。a 如果 第1個a 後面出現的第1個b z 是右端點,且在第2個a之前,那麼有貢獻 如果 第2個a 前面出現的第1個b z 是左端點,且在第1個a之後,那麼有貢獻 最後的貢獻 2 dis ...

Python學習總結Day4

1 窗體左上角為座標原點 turtle.setup width,length,startx,starty 非必須 設定窗體的大小及位置,前兩個是窗體的大小,及長寬,後兩個是位置,相對螢幕左上角的位置 可選 1 絕對座標 海龜在畫布的正中心,執行方向為向著畫布的右側,右方向為x軸 turtle.got...