摘要: [BZOJ][1] [Luogu][2] sol 用set维护有宝物的点集。 可以证明行走路径$a[1],a[2]...a[n]$一定是按照点的dfs序排列。 因为$dist(u,v)=dep[u]+dep[v]+2 dep[lca(u,v)]$,dfs序相邻可以最小化$dep[lca(u,v)]$ 阅读全文
posted @ 2018-02-23 22:09 租酥雨 阅读(173) 评论(0) 推荐(0) 编辑
摘要: [BZOJ][1] [Luogu][2] sol 虚树DP 所谓虚树就是把当前一次询问要用到的点全部拿出来建成的一棵树吗? 其实不只是这次询问的所有点,还要加上dfs序相邻的两个点的lca,这样才可能形成原树的结构。 接下来需要处理连边。其实只要维护一个栈每次保证从前往后都是祖孙关系就行了。一个点在 阅读全文
posted @ 2018-02-23 22:03 租酥雨 阅读(148) 评论(0) 推荐(1) 编辑
摘要: BZOJ权限题qwq [Luogu][1] sol 树上路径当然是淀粉质辣! 考虑所有过重心的路径。开一个$10^6$大小的数组$t$表示某一路径长度的最小边数,初始化为$inf(i 0)$,$t[0]=0$。 枚举重心的每棵子树进行$dfs$,假设获得了一条从重心出发边数为$dep$边权和为$di 阅读全文
posted @ 2018-02-23 19:39 租酥雨 阅读(202) 评论(0) 推荐(0) 编辑
摘要: [BZOJ][1] [Luogu][2] sol 补一篇左偏树的题解 骑士对于树上结点挂链,每次合并所有子树上的骑士后把所有攻击力小于城池防御值的骑士弹掉。 左偏树维护加乘懒标记 记得要pushdown delete的时候也要记得pushdown! code cpp include include 阅读全文
posted @ 2018-02-23 12:02 租酥雨 阅读(277) 评论(0) 推荐(2) 编辑