1. 程式人生 > >[CF 893F] Subtree Minimum Query

[CF 893F] Subtree Minimum Query

Description

給定一棵有根樹,點 \(x\) 有點權 \(a[x]\),多組詢問,每次詢問以 \(x\) 為根的子樹中的所有滿足 \(dep[y]-dep[xi]<=ki\)\(y\) 中,最小的 \(a[y]\)\(n\leq10^5,q\leq10^6\)。強制線上。

Solution

按照 \(dfs\) 序重新編號,這個題等價於求編號在 \([L[x],R[x]]\),深度在 \([dep[x],dep[x]+k]\) 中的點權最小值。

注意到編號在 \([L[x],R[x]]\) 深度在 \([0,dep[x])\) 的點不存在,所以詢問等價於編號在 \([L[x],R[x]]\)

,深度在 \([1,dep[x]+k]\) 的點有多少,這樣就可以按照深度為第一關鍵字建主席樹,每次求某一版本的區間最值。

Code