1. 程式人生 > >集訓Day7

集訓Day7

路徑 子序列 關鍵字 深度 完整 一個 roo nbsp root

在做過的試題裏ran的...發現之前做的題有些已經生疏了

bzoj3626 LCA

一棵樹,每次詢問在$[l,r]$區間內的每個節點$i$與$z$的最近公共祖先的深度之和

假的LCA

有一個很平凡的想法是,如果你把x到root這條路徑都賦值為1,那$DEPTH_{lca(x,y)}$就是y到root的邊權和

我們離線操作

從1到n每個點做一次上述的賦值1+查詢的操作就可以了

同時我們註意到$[l,r]$實質上可以化為兩個前綴之差

於是這題就做完了

bzoj2946

給你5個串,求他們的最長公共子序列

串長不超過2000

建出第一個串的SAM,後面幾個串依次在上面跑,一個串的len取max,五個串的len取min就可以了

bzoj2724(我為什麽會ran到這道題

強制在線區間眾數

分塊,我們用$ZS_{i,j}$表示第i塊到第j塊的眾數

然後註意到我們查找一個數在一個區間裏出現次數只用把序列按權值和位置兩個關鍵字排序然後二分查找

這樣我們對於完整的塊直接詢問

不完整的塊暴力二分

預處理眾數...yy一下就可以了

集訓Day7