随笔分类 -  点分治

摘要:传送门 本来看一眼点分治,感觉点分治不太想写,所以去写 $dsu\ on\ tree$.... 但是为了保留儿子的信息就不能维护当前节点到儿子节点的距离,只能维护根到各个节点的距离 而且还不能因为距离大于询问距离就不存了,因为相减后可能会等于 然后因为距离太大所以只能 $map$ 维护,然后就 $T 阅读全文
posted @ 2019-09-05 11:17 LLTYYC 阅读(197) 评论(0) 推荐(0)
摘要:传送门 纪念第一个自己写出的黑题... 看一眼就是分数规划,二分答案先套上,二分一个 $mid$ ,把所有边权减 $mid$ 然后就变成求树上边数在 $[L,R]$ 范围内的最长链 看到树,看到求链,再看看时间限制,点分治是没得跑了... 关键是考虑具体怎么点分治 每到一个分治节点 $x$ 就考虑所 阅读全文
posted @ 2019-08-22 08:18 LLTYYC 阅读(216) 评论(2) 推荐(2)
摘要:传送门 考虑每个点 $i$ 对答案的贡献 当删去一个节点 $j$ 的时候, $i$ 会对 $j$ 产生 $1$ 的贡献当且仅当 $i,j$ 这条链上的所有点中,$j$ 是第一个删除的节点 显然链上每个节点第一个被删除的概率是一样的 所以点对 $i,j$ 的贡献就是 $\frac{1}{dis(i,j 阅读全文
posted @ 2019-07-27 14:29 LLTYYC 阅读(304) 评论(0) 推荐(0)
摘要:传送门 考虑先随便找一个点作为根,然后再慢慢移动根,这样一步步走到最优的点 设 $sum[x]$ 表示节点 $x$ 的子树的军队数,$len(x,y)$ 表示 $x,y$ 之间边的长度 那么对于根节点 $x$ 的一个儿子 $v$,考虑把儿子搞为根时,代价的改变量 $v$ 的子树内的军队消耗减少,共减 阅读全文
posted @ 2019-01-30 11:13 LLTYYC 阅读(161) 评论(0) 推荐(0)
摘要:传送门 如果没有修改显然就直接点分治 有修改那就动态点分治 动态点分治就是在点分树上维护一些东西,查询时也在点分树上查 因为点分树深度是$log$的所以可以保证时间复杂度 此题我们需要在点分树上维护 $c$ 和 $f$ $f[x]$ 维护节点 $x$ 的子树中传给它父亲 $Fa$ 的所有路径长度 $ 阅读全文
posted @ 2019-01-29 16:24 LLTYYC 阅读(276) 评论(0) 推荐(0)
摘要:传送门 十分显然的点分治 枚举所有点作为两点的LCA 开一个桶$pd$判断之前子树内是否出现过此路程 对于每一个子树都把子树到根的所有路程dis都考虑匹配 如果 $pd[K-dis]=1$ 那么就说明存在匹配 然鹅题目还要求在合法匹配中选最少经过边数的匹配 那么再开一个数组 $dd$ ,$dd[i] 阅读全文
posted @ 2019-01-23 13:15 LLTYYC 阅读(185) 评论(0) 推荐(0)
摘要:传送门 点分治入门题 首先可以直接枚举所有两点的lca强行dp 设 $f [ x ] [ 0/1/2 ]$ 表示节点 $x$ 在模3意义下,$x$ 的子树所有节点到 $x$ 的距离为 $0/1/2$ 时的方案数 初始 $f [ x ] [ 0 ] =1$ (本身到自己有一种方案) 转移就枚举所有儿子 阅读全文
posted @ 2019-01-22 11:30 LLTYYC 阅读(163) 评论(0) 推荐(0)