暑期集訓Day 20 24 總結 (資料結構)

2021-08-25 11:53:25 字數 2502 閱讀 3687

轉眼間,暑期訓練已經過了大半了。這半個多月以來也做了很多題,不過還是個菜雞。。。

上乙個專題是字串專題,不過因為那個專題的題目沒有寫多少,所以。。。放到以後等做的題多一些再更新吧

這兩天學資料結構確實收穫不少,雖說之前對線段樹,bit這些早有耳聞,不過也僅僅是限於了解的層面,沒有像最近幾天系統的訓練過。。。漲了很多姿勢,不過題是做不完的qaq。。。

day 20

這一天的題還好沒那麼**(和後幾天比),主要講的是單調佇列和bit。bit還不是很深入。

像單調佇列的話,其實很常見,不過做題時不太容易想到

a- hdu3415

求環上的最大子串

這道題是一道好題。首先求最大子串是乙個經典的dp問題,首先斷環成鏈,這裡用單調佇列優化dp。n方的做法時很顯然的,通過單調佇列捨棄不能成為最優解的點,優化成o(n)。

g - hdu6319

這道多校的題還是挺難的啊,求區間最大值這個很好求,就是滑動視窗問題。但是求count就不好求了。網上的神奇做法是將整個陣列倒過來求一次單調佇列,最後剩下的就是count的值,orz,自己確實想不到。。。不過還真是這樣的。。。

剩下有幾道bit的題

e - poj1990

首先想到按權值排序後,這題就變成了n方的題,考慮優化。記錄每個牛之前所有牛的位置和和牛的個數,就可以算出這只牛的答案,這一步複雜度使用兩個樹狀陣列維護後是logn的,共需掃瞄n隻牛,總複雜度nlogn

f - poj1195

二維樹狀陣列裸題

j - poj3067

轉化樹狀陣列求逆序對問題

h - poj3321

這道題題解裡採用了我之前從來不知道的dfs序(時間戳)來建立樹狀陣列,很奇妙。。。

day 21

這一天似乎講了整整一天的線段樹,做了些題後,我從乙個線段樹幾乎不會的蒟蒻,變成了線段樹剛剛入門的蒟蒻。。。

wym大佬將線段樹的lazy操作分成了四種題型,而弱弱的我只做完了前兩種。。。。

前置技能:單點更新,區間查詢

a,b,c屬於此型別,c題好像還得字串處理,就沒做了。。。(話說剛學完字串)

(1)區間加,區間乘

這種應該是最裸的題了,比賽時應該也不會考,不過有助於我們分析標記傳遞的整個過程。

像d,e都屬於這種型別。。。

(2)區間收斂

像區間除,區間取尤拉函式或者自己搞個什麼函式的,都是這種,套路很明確。傳遞標記時不用傳到最下方,只要當前區間已經達到收斂,就可以return 了。

(3)區間加等比數列/等比數列

***待補

(4)區間取max

***待補

掃瞄線和離散化

這個之前確實沒怎麼涉及到,聽過課後又漲了姿勢。不過離散化這個還是挺重要的,已經做過好幾道題涉及離散化了。。。

似乎xdoj還有幾道題,整理過後再發題解。。。

day 22

動態開點,可持久化資料結構(主席樹,可持久化並查集)

這個內容之前基本上沒有涉及了吧。。。wang聚聚tql

感覺課堂聽了後自己看了幾篇大佬部落格,終於稍微明白了點,也沒完全明白。。。

還是做幾道題熟悉一下

(可持久化並查集還沒會,5555)

b - bzoj1452

二維樹狀陣列,有100種顏色,那麼就維護100個二維bit。。。

至於add,ask操作嗎,多加了一層for迴圈,差分求區間和是稍微複雜了點,不過有模板的話(逃)

c - hdu6183

神題,被卡成狗,t了20發,最後看了網上部落格剪枝滾了過去。。。

這道題硬是用50顆線段樹搞的話,qaq。。。

所以get新姿勢 ---->  動態開點

所謂動態開點,就是用到這個點時再新增,單次操作logn,總空間複雜度nlogn。

第一次寫動態開點就寫炸了。。。

d - hdu2665

題目坑差評,明明是區間第k小,被題面寫成區間第k大。

這題用主席樹,套個板子。。。(思想還是大概要了解的)

不過由於實現時用原來的線段樹時細節較多,這裡還是套的板子。。。

e - bzoj1878

這題其實之前做過,是用莫隊做的(優雅)。雖然n根號n的複雜度對於洛谷的1s有點少,不過bzoj的4s足夠了啊

幾天用主席樹做了一遍 (找別人部落格抄了一遍),算是對主席樹加深一點了解。

聽說還有樹狀陣列,之後再補吧。。。

day 23

今天講了lca和樹剖,之前這兩個==沒學,今天花了整整一天的時間惡補了一下。。。(結果只做了兩題。。。) 

bzoj4034

這道題做完算是入了門

bzoj3626

這道oi的省選題出的很好,有一定思維,非常推薦做一下~

day 24

今天講的內容似乎並不比昨天簡單。。。

主要內容:莫隊,分塊,cdq和整體二分,樹套樹。。。

窩太弱了,莫隊和分塊還沒去刷題,一天幾乎都在看後兩項了,然而還是。。。。。。

下面貼上一道cdq的經典問題—— 動態逆序對(bzoj3295)

還有一道樹套樹的題,第一次做樹套樹,身體被掏空qaq

暑期集訓總結

又一輪暑期集訓結束了,暑期集訓中不但要自己集訓刷題,還要進行多校的訓練,下面從自己集訓訓練和做多校兩個方面小結一下吧。說句實話,第乙個暑期集訓,作為新生,還是太懵懂,發現自己太過於懶散沒有太大的進步,今年作為學長,看著學弟學妹們集訓的那麼努力,自己也變得努力起來,這個假期,自己主要按照乙個優秀的ac...

2019暑期集訓總結

集訓前 放假了放假啦,終於可以回家了 這就是我的心態。在家的時候,我也沒閒著,跟著一位學長做了一點點小小的任務,從而接觸了一小點點python.但是後來就會越來無聊,想念學校 集訓進行中 剛開始,emmmm,可能在家懈怠。不能夠很快得以最好的速度進入到這個集訓的氛圍裡。經過慢慢工作起來,一切都步入正...

2019暑期ACM集訓總結

為期乙個月的acm暑假集訓過去了,想一想,真是光陰似箭,但與以往的不同,沒有哀傷,而是滿滿的充實,這乙個月過著996的生活,和一群志同道合的朋友在一起學習儘管每天都很自閉但也是一件快樂而又享受的事。跟著杭電的暑假集訓,發現了自己與那些牛人的差距。雖然我們可能不是天生神力,但是我們在努力,我們在努力追...