LCT刷題總結

2022-03-16 13:57:24 字數 1826 閱讀 1241

初探多項式之後,開始了資料結構之旅,

可持久化資料結構的總結大概是咕了,

在這裡只總結一些$lct$的我認為比較好的題

發現題中只有刪邊操作,而我們只會做加邊,所有考慮時光倒流

先在最後時刻作出最小生成樹,之後$lct$維護最大值不斷$link,cut$加邊刪邊更新答案即可

頹了$b$哥的題解,挺好的一道題,然而$secert$大嬸秒切$%%%$

首先聯通塊數等於總點數減去有效邊數

這裡的有效邊數是指不會因為加入此邊而刪去在當前查詢區間裡的邊

所以我們為了使一條邊盡量有效

應該(在不得不刪邊的情況下)貪心選擇這條路徑上最早出現的邊並把它刪掉

用主席樹維護便可以進行查詢操作了

其實這道題還是偏數學一些

題中給出了$taylor$展開的式子,考慮直接代入$x0=0$

之後用$lct$維護一條鏈的多項式係數,現在問題轉化為三種函式的展開

對於$f_1$求導:

$$0:sin(ax+b)$$

$$1:a*cos(ax+b)$$

$$2:-a^2*sin(ax+b)$$

$$3:-a^3*cos(ax+b)$$

$$4:a^4*sin(ax+b)$$

顯然是四個一迴圈

$f_2:$

$$0:e^$$

$$n:a^n*e^$$

$f_3:$本身就是個多項式直接用即可

稍微展開一下發現前兩個的分母上是階乘,所以只保留$15$項左右便可以保證精度

最後上$lct$,問題便得到了解決

對查詢離線,每個查詢的答案便是$calc(r)-calc(l-1)$

$lca$深度和可以用樹上差分實現,每加入乙個點相當於把它到根的路徑上點權全加$1$

查詢的答案便是它到根的路徑上的點權和

暴力的思路便是每次一直從根一直$explore$到$x$,查詢最壞$n^2$次

考慮優化:用一顆$lct$維護已知點,在$splay$上二分,並在$splay$間來回跳直到找到要找的點

查詢複雜度可以做到均攤$n*log_2(n)$

然而毒瘤出題人對於鏈要求查詢$n+log$

維護l,r代表已知區間,失敗的期望次數便是$\frac}n}$

$randomshuffle一$下便可以通過這個測試點

是個神仙題,看了一晚上題解也沒有什麼成型的思路

首先探索一下本題的性質:

$1>$

可以離線

$2>$

因為查詢保證點是存在的,所以每個點可以在最初就加好,而且並不需要刪除

$3>$

離線處理相當於在一棵樹上改變一段時間新建的點的父親,

為了保證複雜度,需要對於每乙個$1$操作建乙個虛點,

把每個點都建在時間軸上它前面離它最近的虛點下面

虛點之間也要連線起來

用$lct$便可以做到$log_2(n)$改變父子關係

這道題用虛點的弊端在於不能用$split$查詢

因為建虛點無法保證任意兩點之間的距離是原樹中的距離

但是可以保證每個點到1的距離是原樹中的距離

所以可以用$dis[x]+dis[y]-2*dis[lca(x,y)]$

一道難題便迎刃而解了吧?

其實我理解很不深刻歡迎各路神仙來hack

題目大意:動態維護子樹$size$

原先的$lct$一般是維護一條路徑上的權值什麼的,

一旦出現子樹資訊便顯得有些棘手

不妨考慮子樹的資訊應該用什麼統計:

顯然是把當前點和根聯通後的虛子樹的$size$和

之後便是如何維護:

我們發現只有在$access$和$link$操作時會改變虛子樹的連線情況,所以直接維護即可

LCT總結 應用篇(附題單)(LCT)

為了優化體驗 其實是強迫症 蒟蒻把總結拆成了兩篇,方便不同學習階段的dalao們切換。lct總結 概念篇戳這裡 灰常感謝xzy巨佬提供的強力資磁!可參考xzy巨佬的部落格總結 題單對於系統地學習乙個知識點還是有好處的。所以蒟蒻蒐集了各處的lct題目 其實作為近年新興的知識點,現有的好題不是很多,有些...

筆試刷題總結

今天刷了一些筆試題,以下是刷完筆試題後看到的相關知識點的解析,做個小結。1 多型主要以兩種形式,靜態多型和動態多型,靜態多型主要實現了函式過載和運算子過載。動態多型主要實現了虛函式。虛函式是動態聯編,程式在執行的過程中確定呼叫哪乙個函式。2 int s 8 定義乙個指標陣列,該陣列中每個元素是乙個指...

Java刷題總結

public class hasstatic a.程式通過編譯,輸出結果為 x 102 b.程式通過編譯,輸出結果為 x 103 c.10行不能通過編譯.因為x星私有靜態變數 d.5行不能通過編譯.因為引用了私有靜態變數 解析 同乙個類內,private變數可以訪問,所以cd錯。由於x是static...