向已退役学长致敬!
T1
一道睿智题目,正常思路就是时空复杂度均为 $O(n\times 32768)$ 的背包。这个做法不被卡时间却被卡空间,其实就是想让你离线处理询问,然后动态存、用一组背包。
但不能总共只开一组背包,因为不同子树之间不能互相影响。
$XJR$ 神爷的大致意思就是通过点分治把树越分越小,把一组背包从根节点 $1$ 开始动态转移,并处理离线询问。
然后 $GDC$ 给我说了一种比较简便的方法,就是 从根节点往下,每 $50$ 层分为一段,每一段的最下边那一层($50$ 的倍数层)有多少个点,这 $50$ 层就开多少个背包。然后挤着用??雾。