
点分治
文章平均质量分 61
_beginend
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【洛谷P6199 [EER1]河童重工】【点分治+虚树】
题意 给出两棵树T1,T2T_1,T_2T1,T2,定义新图中两个点的距离为dis1(i,j)+dis2(i,j)dis_1(i,j)+dis_2(i,j)dis1(i,j)+dis2(i,j),其中disk(i,j)dis_k(i,j)disk(i,j)表示在TkT_kTk中iii到jjj的距离。求新图的最小生成树。 n≤100000n\le 100000n≤100000 分析 先对...原创 2020-03-09 15:38:53 · 515 阅读 · 0 评论 -
Codeforces 809E Surprise me! 莫比乌斯反演+点分治
题意 给一棵n个节点的数,点权为1到n的整数且互不相同。求∑i≠jφ(vali∗valj)∗dis(i,j)n∗(n−1)\frac{\sum_{i=\not j}\varphi(val_i*val_j)*dis(i,j)}{n*(n-1)}n∗(n−1)∑i≠jφ(vali∗valj)∗dis(i,j) n≤2∗105n\le2*10^5n≤2∗105 分析 注意到φ(ab)=φ(...原创 2019-07-02 11:11:01 · 236 阅读 · 0 评论 -
Codeforces 997D Cycles in product 点分治+dp
题意 有两棵树T1和T2,现在要构造一个新图,新图的每个节点由一个二元组(u,v)(u,v)(u,v)来表示,其中uuu是T1的节点,vvv是T2的节点。两个二元组(u1,v1),(u2,v2)(u1,v1),(u2,v2)(u1,v1),(u2,v2)之间存在边当且仅当在u1,u2u1,u2u1,u2在T1中有连边或v1,v2v1,v2v1,v2在T2中有连边。问在新图中有多少条不同的长度为k...原创 2018-07-02 18:51:22 · 604 阅读 · 0 评论 -
Codechef CUTTREE 点分治+任意模数FFT
题意 定义森林的强度为连通块大小的平方和。 第0天有一棵n个节点的树,每一天大厨会随机删掉森林中的一条边,共进行n-1天,对于i=0,1,...,n−1i=0,1,...,n−1i=0,1,...,n-1,求出第i天结束时这棵树的强度的期望值。答案模109+7109+710^9+7。 n≤105n≤105n\le10^5 分析 对于一个有序点对(x,y)(x,y)(x,y),若在第i...原创 2018-04-21 08:33:27 · 382 阅读 · 0 评论 -
Codeforces 150E Freezing with Style 点分治+二分答案+单调队列
题意 给出一棵n个节点的树,边有边权,长度均为1。问长度在[L,R]之间的所有路径中,中位数最大是多少。 n<=100000 分析 一开始比较自然的想法是二分答案,然后把不小于mid的边权看做1,其余看做0,然后看是否存在一条路径满足边权和大于0。 显然可以点分治来做。在分治的时候维护最大值可以用带log的数据结构,这样的话复杂度就是O(nlog3n)O(nlog3n)O(nl...原创 2018-04-10 16:48:21 · 498 阅读 · 0 评论 -
bzoj 1921: [Ctsc2010]珠宝商 后缀自动机+点分治
题意 有一棵n个节点的树和一个长度为m的字符串S,树上每个节点有一个字符。问对于任意的有序数对(x,y),从x到y路径组成的字符串在S中出现次数的和。 n,m<=50000n,m<=50000n,mO(1)O(1)O(1)的,所以这么做总的复杂度是O(n2)O(n2)O(n^2)。 暴力2:我们考虑求每个点作为路径的lca时候的贡献。设路径的lca为点Z,那么对于一条路径(X,Y...原创 2018-03-31 07:49:21 · 997 阅读 · 1 评论 -
bzoj 3784: 树上的路径 点分治+RMQ+堆
题意 给定一个N个结点的树,结点用正整数1..N编号。每条边有一个正整数权值。用d(a,b)表示从结点a到结点b路边上经过边的权值。其中要求a < b.将这n*(n-1)/2个距离从大到小排序,输出前M个距离值。 N<=50000,M<=Min(300000,n*(n-1) /2 ) 分析 这题有一种做法是先二分答案点分治,求出距离值的下界后再点分治一次把全部距离值找到。...原创 2018-03-02 07:33:43 · 424 阅读 · 0 评论 -
bzoj 4598: [Sdoi2016]模式字符串 点分治+hash
题意 给出n个结点的树结构T,其中每一个结点上有一个字符,这里我们所说的字符只考虑大写字母A到Z,再给出长度为m的模式串s,其中每一位仍然是A到z的大写字母。Alice希望知道,有多少对结点u,v>满足T上从u到V的最短路径形成的字符串可以由模式串S重复若干次得到?这里结点对u,v>是有序的,也就是说u,v>和v,u>需要被区分.所谓模式串的重复,是将若干个模式串S依次相接(不能重叠).例如当S原创 2018-01-19 21:12:49 · 416 阅读 · 0 评论 -
bzoj 3451: Tyvj1953 Normal 点分治+fft
题意某天WJMZBMR学习了一个神奇的算法:树的点分治! 这个算法的核心是这样的: 消耗时间=0 Solve(树 a) 消耗时间 += a 的 大小 如果 a 中 只有 1 个点 退出 否则在a中选一个点x,在a中删除点x 那么a变成了几个小一点的树,对每个小树递归调用Solve 我们注意到的这个算法的时间复杂度跟选择的点x是密切相关的。 如果x是树的重心,那么时间复原创 2017-12-28 20:24:26 · 562 阅读 · 0 评论 -
bzoj 3697: 采药人的路径 点分治
题意 采药人的药田是一个树状结构,每条路径上都种植着同种药材。 采药人以自己对药材独到的见解,对每种药材进行了分类。大致分为两类,一种是阴性的,一种是阳性的。 采药人每天都要进行采药活动。他选择的路径是很有讲究的,他认为阴阳平衡是很重要的,所以他走的一定是两种药材数目相等的路径。采药工作是很辛苦的,所以他希望他选出的路径中有一个可以作为休息站的节点(不包括起点和终点),满足起点到休息站和休息...原创 2017-10-10 10:30:29 · 390 阅读 · 0 评论 -
bzoj 4016: [FJOI2014]最短路径树问题 最短路+点分治
题意给一个包含n个点,m条边的无向连通图。从顶点1出发,往其余所有点分别走一次并返回。 往某一个点走时,选择总长度最短的路径走。若有多条长度最短的路径,则选择经过的顶点序列字典序最小的那条路径(如路径A为1,32,11,路径B为1,3,2,11,路径B字典序较小。注意是序列的字典序的最小,而非路径中节点编号相连的字符串字典序最小)。到达该点后按原路返回,然后往其他点走,直到所有点都走过。 可以知原创 2017-10-18 20:53:03 · 1124 阅读 · 0 评论