
点分治
小菜鸡加油
菜鸡
什么都能折磨
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Poj 1741Tree(点分治+容斥)
http://poj.org/problem?id=1741思路:这个题不能树状数组水过去。因为有负权边。所以对于去重的部分要用容斥去做。对于一颗子树内的贡献,我们跑完了这个重心的子树后,对其子树再跑一遍去除贡献。此时消去贡献需要加重心到这个儿子节点的边权,加上一个偏移量。#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cma原创 2021-05-08 14:23:11 · 152 阅读 · 0 评论 -
P4178 Tree(点分治+树状数组/容斥)
https://www.luogu.com.cn/problem/P4178思路:对u遍历每一棵子树,计算出dis,并询问前面子树有多少个点深度小于等于k−d[i] ,查询有多少值<=k-d[i]的,树状数组就好了。询问结束后把这个子树的答案累加进数组。遍历完所有子树后清空当前u的所有子树答案。注意是Dfs清空。点分治后复杂度O(nlognlogn)#include<iostream>#include<vector>#include<queue>原创 2021-05-07 20:53:00 · 171 阅读 · 0 评论 -
P3806 【模板】点分治1(模板)
https://www.luogu.com.cn/problem/P3806点分治还有边分治。暂时补个点分治。感觉这个算dis的那部分和dsu on tree的暴力很类似阿。确实看到题解区里有一个用了dsu on tree的。到时候都要重新理...思路:首先要考虑如何计算答案,对于每个距离,他要不经过当前的根节点,要不就是在根节点的子树里。我们算好当前经过根节点的所有距离并存下。然后递归,这样就能处理原来在根节点的子树里的距离(他们总会变成根的)。算有无出现的距离就类似背..原创 2021-05-03 17:18:48 · 156 阅读 · 1 评论