点分治
Wuliwuliii
谁无暴风劲雨时,守得云开见日明!
展开
-
Flower【HDU-6849】【动态点分治+树状数组】
2020 Multi-University Training Contest 7 F题 有一个N个点的树,给予其中M个操作,每次选其中一个点x,{x, r, v},给它一个影响范围为r的权值为v的值,我们现在想要选取最多的权值点,使得两两之间是没有可重叠区间的。 这个问题画在一维平面上其实很好做,也就是对于一段排序,然后维护的就是一个线段树优化dp,当我们选取这个点pos的时候,我们只能选择的点,或者说,我们假设在中,如果选择其他的更优,那么,我们可以不将这个点加进我们所选的集合中去。 于...原创 2020-08-12 17:16:07 · 360 阅读 · 0 评论 -
[BJOI2017]树的难题【点分治+线段树】
题目链接 很容易想到的是,我们可以对首先对每个点连出去的边按照边颜色进行排序,这样就可以保证一段相同的是会在一起出现的,然后我们可以进行点分治,再利用线段树维护深度对应的最大权,我们需要两棵线段树,一棵维护不同值,一棵维护相同值,另外要保证我们每次初始化需要到位,不然很有可能被卡70或80pts就比较的难受了。8 2 4 4-5 31 2 21 5 11 8 22 3 12 4 15 6 25 7 1ans:-48 4 1 5-7 9 6 11 2 11 3 21.原创 2020-06-11 08:55:18 · 300 阅读 · 0 评论 -
多彩的树【点分治+抽屉定理】
链接:https://ac.nowcoder.com/acm/contest/5556/A来源:牛客网有一棵树包含 N 个节点,节点编号从 1 到 N。节点总共有 K 种颜色,颜色编号从 1 到 K。第 i 个节点的颜色为 Ai。Fi 表示恰好包含 i 种颜色的路径数量。请计算: 其中, 很明显的一个二进制维护,因为K真的很小,我们可以利用二进制来做。 但是,我们不能的去枚...原创 2020-05-05 22:33:12 · 254 阅读 · 0 评论 -
Awesome Shawarma 【Gym - 101991A】【点分治】
题目链接 题意:求给一棵N个点的树,加一条边,使得桥的数量在之间。 思路:原来有N-1条边,同时也代表N-1个桥,那么,我们需要删除长度的桥,才能使得答案在之间,所以,我们找出长度在的链,统计这样的链的数量,所以,可以用点分治来完成这个任务。 一开始的时候,我边界条件选择不严谨,导致出现如下错误。16 4 41 22 33 44 55 6ans:5#in...原创 2020-04-27 22:15:47 · 238 阅读 · 0 评论 -
Paths on the Tree【ZOJ - 3863】【点分治+推理过程】
题目链接 大致题意:有一棵N个点的树,现在取两条边,使得两条边共同都有的点的数量小于等于K,问这样的取法的种类数。第一条边:{1, 2, 3},第二条边:{2, 3, 4}第一条边:{2, 3, 4},第二条边:{1, 2, 3}算两种方案数,同时一个点也被算作是一条边但是{1, 2, 3}和{3, 2, 1}是一样的边(边没有方向性,无向) 解这道题,让我们先去想想看高复杂度...原创 2020-04-25 22:10:08 · 441 阅读 · 0 评论 -
QTREE4 - Query on a tree IV【动态点分治/点分树】
题目链接 SP2666 QTREE4 - Query on a tree IV给定一棵n个点的带边权的树,点从1到n编号。每个点可能有两种颜色:黑或白。我们定义 dist(a,b)为点a至点b路径上的权值之和。一开始所有的点都是白色的。要求作以下操作:C a将点a的颜色反转。(黑变白,白变黑)A询问 dist(a,b)的最大值。a,b点都必须为...原创 2020-04-16 14:51:39 · 297 阅读 · 0 评论 -
[ZJOI2007]捉迷藏【动态点分治】
题目链接 有N个点的树,树结构固定,可以对结点进行开关处理,问关灯两结点的最远距离。 用动态点分治来维护这个了。动态点分治,我们知道每个点分树的父节点是固定的,此话怎讲?我们模拟一下点分治的过程,首先,找到一个根结点root,然后从它开始进行一系列计值算法,接下去是分治,我们对于root的v结点方向,找到一个新的根rt,那么,我们认为root是rt的父结点。所以,每个结点...原创 2020-04-12 19:49:50 · 183 阅读 · 0 评论 -
动态点分治
点分治,作为树分治中的一种,在很多树形结构的问题上起到了很重要的作用,但是假如我们在树分治的基础上,根据时间戳来对树上的结点进行修改的话,那样岂不是很难受? 点分治该怎么搞?暴力,当然是暴力啊?每次修改一次,我们暴力点分一次,复杂度升天。 那么,就该介绍一下动态点分治了!动态点分治 动态点分治,我们知道每个点分树的父节点是固定的,此话怎讲?我们模拟一下点分治的过程,首先,...原创 2020-04-12 15:44:21 · 675 阅读 · 0 评论 -
Close Vertices 【CodeForces - 293E】【点分治+尺取+树状数组】
题目链接 题意:给你一个N个点的树,再给一个L和W,分别代表你可以取边的个数小于等于L条的一条链,并且还要满足链上的权重,也就是链上的边的权值和小于等于W的链有多少种取法? 思路:记得男人八题里面的一道点分治,这道题以那道题为基础增加了难度,现在,我们如果不是考虑二维的只去求一维的贡献的话,那么实际上可以用容斥来得到答案,我们可以先求一棵树上的所有两点之间的贡献,以某个点为端点,另外一...原创 2020-02-08 10:36:21 · 329 阅读 · 0 评论 -
[IOI2011]Race【点分治】
题目链接 真的TLE了N久了,然后一直想不明白为什么用递归去作为clear清除操作,会TLE?(关键是一个测试点都没有过,让我自己算了N久的时间复杂度,以为自己写错了),debug了好久啊,然后想,是不是我的递归层数太多了,然后就这样被卡掉了,于是乎,我想,直接把答案存进去(相当于桶排了),然后我们直接对答案清除即可,这样就能把递归层数给降下来,就没有那么多次了。 果然,这么一调之后就...原创 2019-09-20 20:22:10 · 252 阅读 · 2 评论 -
Fish eating fruit【2019沈阳网络赛】【点分治】
题目链接 反正比赛的时候给忘了去取模,然后WA了两发,让学长先过了,就一直把后来改完的代码放到了比赛结束,才交,1A。 直接点分治模板了,把所有的距离(%3)给记录下来,然后去得到答案即可。 主要可以看一下我代码部分的"get_ans()"这块的函数。#include <iostream>#include <cstdio>#include <...原创 2019-09-14 18:38:09 · 440 阅读 · 0 评论 -
[FJOI2014]最短路径树问题【生成树+点分治】
BZOJ-4016 这道题…… 让我认识到了我的点分治有一处极大的漏洞,就是我们在分治的时候需要存下来的是目前子树的所有的节点数,再往下分治的,我一直没有存,所以最后的复杂度就不会是了,而是更高了,所以复杂度过不去,一直T,竟然没反思过我的点分治是存在漏洞的,一直在看优先队列优化的Dijkstra是不是哪里写错了…… 呜呜呜。 首先就是去处理这棵生成树,然后就是分别考虑两棵子树,以及最...原创 2019-08-30 22:51:06 · 214 阅读 · 0 评论 -
Distance in Tree【Codeforces 161D】【点分治】
题目链接 有学弟用了树形DP的解法,很厉害~ 然后这里我的想法是去用点分治来解决这个问题,题目中要求的是"== K"的这样的点对的数量,其实很容易就想到点分治,但是我感觉我这个点分治,其实也就是个树形dp的写法。就是我们利用重心去分治了子树,然后不断的去判断,这里多了个要加进ans的答案就是访问到距离权为K的点,需要把答案加进去。剩下的,感觉也就是个树dp一样的了。#includ...原创 2019-08-29 15:08:51 · 263 阅读 · 0 评论 -
And And And【2019西安邀请赛】【点分治】
题目链接A tree is a connected graph without cycles. You are given a rooted tree withnnnodes, labeled from1 to n1ton. The tree is rooted at node11. The parent of theii-th node isf_{a_i}fai. The e...原创 2019-08-29 09:24:50 · 342 阅读 · 0 评论 -
Tree 【POJ - 1741】【点分治+尺取】
题目链接 想到点分治倒是不难,但是怎么总是TLE呢?这个就很烦了,然后就想到了一种把solve()函数里的那个的循环降次,这里就用到了的降次方式,我们可以先对其sort快排一下,然后就是去进行尺取了。尺取的主要方式: while(l < r) { if(Stap[l] + Stap[r] <= K) { sum += r - l; l++;...原创 2019-08-27 10:45:05 · 143 阅读 · 0 评论 -
[国家集训队]聪聪可可【点分治模板题】
题目链接 寻找这样的任意两个点(分前后),让他们两个的距离是3的倍数,这时候,询问有多少个这样的对,并且输出概率,概率要求是最简分数形式。 然后一开始的时候,我仿照之前的这一份点分治模板,然后因为在solve判断分治区间上的点的询问是的,其中line是指边的个数,这时候就会把复杂度拉的很高了,所以必须去进行优化。 这时候,我们考虑3的倍数会被怎样组成?(1+2)、(0+0)、(2...原创 2019-08-26 20:34:18 · 158 阅读 · 0 评论 -
【模板】点分治
题目链接首先庆祝考完试回归!!!昨天在医院挂号:医生:挂什么?我:挂科!emmmmm……说会正题,分治:分治——分而治之 主要就是讲的这么一个玩意儿,但是在树上,我们又要怎样分治呢?想到树的重心(正常人不该想到的是中心嘛),不过就是重心,我们找到树的重心,是不是一定能将一棵树给这样划分出来,然后我们对于N个点,最多(递归层数)划分就一定可以划分完成,所以时间...原创 2019-08-26 10:53:46 · 151 阅读 · 0 评论