2021 GDUT 新生專題訓練

2021-10-22 05:40:11 字數 2227 閱讀 6809

資料結構是利器,可以靈活運用,解決各種複雜的問題。

具體內容太多不必列舉,關鍵還是思維。

分析一道經典的例題(維護數列):

傳送門

題目大意:

給出乙個序列,要求支援插入、刪除、修改、翻轉、求和、求最大子列和。

輸入運算元n(0 <= n <=5e5)

運算元量m (1 <= m <= 2e4)

時間限制 1s,空間限制 128m

看我四步走**

通過資料範圍/時間選擇演算法/結構

n是5e5的範圍,m是2e4範圍,1s的時間限制。

o(mlogn)或者o(m*sqrt(n))都行,分塊**好

想做法維護一段區間的各種性質。

故考慮【分塊/塊狀資料結構、線段樹/樹狀陣列、平衡樹】等。

先只考慮插入、刪除、修改,如果直接陣列維護,顯然不行 。

然後考慮分塊,將整個序列分為sqrt(n)塊,塊狀陣列支援高效的靜態處理,但插入效率低。

為了支援高效插入,考慮通過毒瘤結構 塊狀鍊錶維護,即可將每個插入、刪除、修改操作變為o(sqrt(n))的複雜度,總複雜度為o(m×sqrt(n))

可行。加細節

然後考慮翻轉,維護翻轉標記即可。

最後考慮求最大子列和,塊中維護總和sum、字首和lmax、字尾和rmax,然後根據詢問進行計算,複雜度也是o(sqrt(n))。

碼****巨醜就不放了

最終水過此題。

a.括號匹配問題

傳送門

解題思路

棧結構模擬。

**

#pragma gcc optimize(2) 

//吸氧

#pragma gcc optimize(3)

#include

#include

#include

#include

#include

#include

#define x first

#define y second

using

namespace std;

const

int n =

105, m =

10005

;typedef

long

long ll;

typedef pair<

int,

int> pii;

int n, m, k;

char s[

200]

;int len;

deque<

int>stk;

char ans[

200]

;int

main()

while

(stk.

size()

)printf

("%s\n"

, s)

;printf

("%s\n"

, ans);}

return0;

}

b.佇列和棧

傳送門

解題思路:

雙端佇列模擬

**

#include

#include

#include

#include

#include

#include

#define x first

#define y second

using

namespace std;

const

int n =

105, m =

10005

;typedef

long

long ll;

typedef pair<

int,

int> pii;

int n, m;

deque<

int> q,stk;

intmain()

else

if(s ==

"pop"

)else}}

if(flag)

cout << endl;

while

(stk.

size()

) cout << endl;

}else

cout<<

"error\nerror\n";}

return0;

}

2021 GDUT 新生專題訓練

b 佇列和棧 佇列和棧是兩種重要的資料結構,它們具有push k和pop操作。push k是將數字k加入到佇列或棧中,pop則是從佇列和棧取乙個數出來。佇列和棧的區別在於取數的位置是不同的。佇列是先進先出的 把佇列看成橫向的乙個通道,則push k是將k放到佇列的最右邊,而pop則是從佇列的最左邊取...

2021 GDUT 新生專題訓練 資料結構

int stk n void push int value void pop int top int que n head 1,tail 0 void push int value void pop int front include include include include include ...

2019 GDUT 新生專題 I A

給定n個數字,計算出最短的連續子串行,使這個子串行的全部數字之和大於或等於給定數字s。如果不存在可以滿足題意的子串行則輸出0。這是經典的,相對比較容易的尺取問題,通過遍歷每乙個連續子串行即可得出答案。但是,由於時間的限制,要注意一些已經沒有意義的連續子串行和被重複計算的過程。include incl...