寒假訓練的小總結

2021-06-20 12:01:43 字數 1169 閱讀 2533

在過完年的時候在hust的vjudge上開了幾份小型的訓練專題

可以再contest裡面搜尋"buaa"進入,現在把這些訓練在這裡小小的總結一下。

第一彈:

作為最初的一套,選擇的是我剛接觸codeforces時還在打div2,有些坑著沒有看也沒有做的d,e題。

等到反過頭看看這些題感覺上似乎比當時剛接觸的時候好了不少,能力相比那時的確有了很大的提高嗯嗯……

a是分情況討論,因式分解後發現z在什麼情況下滿足條件,和梅森數相關。

b縮點後的lca,很經典的題型了。

c坑爹題

d是一種分配問題,用費用流解決

e非常有趣的bfs搜尋題,和貪食蛇相關

f也是非常有趣的題目,我是用了離線後啟發式合併平衡樹來處理詢問,的確做的有點麻煩。

第二彈:

這乙份題目都是和資料結構相關的,但不是那麼直接,這一彈一共四道題我覺得都非常棒

a:乙個2*c的格仔,可以開啟或關閉格仔之間的門,詢問某兩格是否連通。

非常有趣的題,利用線段樹來維護一段區間的連通性,其中包括3類共8種:

從左上走到右上,從左上走到右下,從左下走到右上,從左下走到右下……

左和右中間的兩個門是否開啟……

從左上走到左下,從右上走到右下……

線段樹自底向上的維護的過程重要的就是對邏輯的處理,總體上這題非常好。

b:the k-th number的……變種?

感覺似乎離散化之後求kth和rank都能用bit來維護

而區間k-th的長度<=100,感覺暴力就可以了。

當然這應該只是最方便的方法啦。。

c:對於比較小的詢問x可以打個x*x的大表來維護。

而大的詢問都是週期性的乙個乙個區間的詢問,所以對於大詢問可以用線段樹來一段一段求modx的最小值。

x的分界線當然要盡可能的往大開

d:乙個序列,支援修改乙個位置的數,查詢一段區間有多少個不同的數字。

首先用l[x]代表x位置的數左邊離它最近且相等的位置。

這個修改的話也可以很輕鬆的通過set來維護新的l[x]

詢問就相當於詢問乙個區間有多少個數小於某個值。

就可以用樹套樹/bit套可持久化線段樹來做了

很費解的是wcb寫的是暴力來詢問l,居然也ac了,而且跑的比我的bit套可持久化線段樹都快_(:3」∠)_...

第三彈:

(坑,慢慢更新)

寒假訓練2 總結

1 hdu 4810 wall painting 組合數 二進位制拆分 2 hdu 5573 binary tree 二進位制思維題 3 hdu 5501 the highest mark 揹包 貪心 4 hdu 5493 queue 樹狀陣列 二分查詢 5 hdu 3639 hawk and ch...

2021寒假訓練

之前都沒有記錄,這些是div2的 二分套二分板子,值得記錄 教訓 1 scanf eof 2 二分邊界!include include include include include include include include include include include include in...

訓練賽小總結

發現有時候自己打比賽打的一塌糊塗,其實並不是水平不夠不會寫,只是陷入了自己構思的假演算法中,思維被束縛在之前構思的牢籠裡了,然後錯了十幾次也寫不對。突然發現以前訓練賽我不會寫了,上了個廁所重新構思題目就切出來了,wf更是直播東京大學上廁所過題法,所以我覺得重新構思很重要,接下來記錄一下我的比賽技巧 ...