
点分治
clover_hxy
The secret oppotunities are hidden inside every failure....
展开
-
bzoj 2152: 聪聪可可(点分治)
2152: 聪聪可可Time Limit: 3 Sec Memory Limit: 259 MBSubmit: 2065 Solved: 1081[Submit][Status][Discuss]Description聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃、两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一原创 2016-10-27 10:29:15 · 392 阅读 · 0 评论 -
bzoj 3730: 震波 (动态点分治)
题目描述传送门题解这道题如果用动态开点的线段树时间非常的卡,我写的常数太大根本卡不过去。。。。 貌似比较好的打开方式是把线段树改成树状数组。。。 以下代码是TLE的。。。代码#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#define N 100003#defi原创 2017-04-21 11:06:05 · 573 阅读 · 0 评论 -
hdu 5571 tree (动态点分治)
题目描述传送门题目大意:给出一棵n个节点的树,每个点有一个权值aia_i,一个点对(i,j)i<j(i,j) i<j的贡献为(ai xor aj)∗dis(i,j)(a_i \space xor \space a_j)*dis(i,j),求每次修改一个节点后树中所有点对的贡献和。题解带修改的路径问题很适合用动态点分治来做。 这道题如果我们直接考虑ai xor aja_i \space xor \原创 2017-04-21 08:11:02 · 466 阅读 · 0 评论 -
hdu 4918 Query on the subtree (动态点分治+动态开点+线段树)
题目描述传送门题目大意:一棵n个节点的树,每个节点有一个权值val 操作1:修改点x的权值 操作2:查询与x的距离小于等于d的节点的权值和。题解如果修改的话应该有很多种做法的。 首先建立重心树,对于每个点维护两棵权值线段树,一棵表示u(作为重心)的子树中到u距离为x的点的权值和,一棵表示到u的父重心距离为x的点的权值和。 那么每次查询的时候就是u的子树中距离为[0,d]的权值和+u在重心树中原创 2017-04-20 21:20:25 · 831 阅读 · 0 评论 -
bzoj 1095: [ZJOI2007]Hide 捉迷藏 (动态点分治)
题目描述传送门题目大意:给出一棵树,树上的每个点有黑白两种状态,求树上最远两个黑点的距离。 会改变点的状态。题解这道题如果不会改变点的状态,那么就是一道点分治的裸题。因为点的状态会动态的改变,所以就引进了一种新的算法——动态点分治。 首先回顾一下点分治的过程,点分治其实就是每次找到重心,然后处理与重心有关的路径。时间复杂度的之所以能够保证是因为如果按照每次找出的重心建树,那么树高不会超过logn原创 2017-04-20 17:46:34 · 600 阅读 · 0 评论 -
bzoj 4598: [Sdoi2016]模式字符串 (hash+点分治)
题目描述传送门题目大意:给出一个n个节点的树,每个节点上有一个大写字母,给出一个模式串,求有多少路径是由模式串重复若干次得到的。题解hash+点分治。 对于每个点依次加入他的每个儿子的子树,然后计算当前儿子的子树与已经处理过的儿子的子树能形成多少合法串。 对于路径上行和下行都要考虑,用hash判断路径是否是模式串的前后缀。 注意细节。 时间复杂度应该是O(Tnlogn)O(Tnlogn)代码原创 2017-04-13 19:34:56 · 918 阅读 · 0 评论 -
bzoj 3219: 巡游 (点分治+单调队列+二分)
题目描述传送门题目大意: 找出一条长度[l,r]的中位数最大的路径。题解二分中位数的权值,然后将边权小于mid赋值成-1,大于等于mid赋值成1,如果存在一条长度为l,r且路径权值和>=0的路径则说明当前答案可行。具体的做法与重建计划类似。 时限比较的卡,有几点需要注意。 (1)把每次点分的树根都预处理出来,就不用每次都找了。 (2)对于每个点来说,计算答案的时候我们优先就算深度较浅的子树。原创 2017-04-05 08:16:28 · 488 阅读 · 0 评论 -
bzoj 3784: 树上的路径 (ST表+优先队列+点分治)
题目描述传送门题目描述: 给定一个N个结点的树,结点用正整数1..N编号。每条边有一个正整数权值。用d(a,b)表示从结点a到结点b路边上经过边的权值。其中要求a题解这道题用到了点分治的思想,但是重点应该还是统计答案。 首先在点分治中,我们每个点最多会被遍历logn次,那么我们可以每次点分治的时候将点按照遍历的顺序加入队列,我们每次加入的是以某个节点为起点的路径,那么所有的路径都可以由两条相交于原创 2017-03-24 15:41:11 · 507 阅读 · 0 评论 -
bzoj 1758: [Wc2010]重建计划 (01分数规划+点分治)
题目描述传送门题解这道题一直在TLE,但是bzoj发过来的数据都可以在1s内出解,不是很懂为什么。 要最大化所选边的平均值,这是个01分数规划的问题,我们只需要二分答案然后判断树中是否有一条长度在[L,U]之间的链∑s∈eval[s]−mid\sum_{s\in e} val[s]-mid大于0即可。 在点分治中01分数规划的效率要高于在外层01分数规划,因为这样不用每次check的时候都找重心原创 2017-03-30 10:14:03 · 920 阅读 · 0 评论 -
bzoj 3697: 采药人的路径 (点分治)
3697: 采药人的路径Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1022 Solved: 347[Submit][Status][Discuss]Description采药人的药田是一个树状结构,每条路径上都种植着同种药材。采药人以自己对药材独到的见解,对每种药材进行了分类。大致分为两类,一种是阴性的,一种是阳性原创 2017-03-10 15:03:21 · 419 阅读 · 0 评论 -
bzoj 1316: 树上的询问 (点分治)
1316: 树上的询问Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 564 Solved: 150[Submit][Status][Discuss]Description一棵n个点的带权有根树,有p个询问,每次询问树中是否存在一条长度为Len的路径,如果是,输出Yes否输出No.Input第一行两个整数n, p原创 2017-01-13 19:35:53 · 519 阅读 · 0 评论 -
bzoj 1468: Tree (点分治)
1468: TreeTime Limit: 10 Sec Memory Limit: 64 MBSubmit: 1351 Solved: 713[Submit][Status][Discuss]Description给你一棵TREE,以及这棵树上边的距离.问有多少对点它们两者间的距离小于等于KInputN(nOutput一行,有多少对点之间的距离原创 2017-01-13 19:17:55 · 488 阅读 · 0 评论 -
poj 2114 Boatherds (点分治)
BoatherdsTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 2564 Accepted: 829DescriptionBoatherds Inc. is a sailing company operating in the country of Tr原创 2017-01-13 18:56:08 · 386 阅读 · 0 评论 -
poj Tree(树的点分治)
TreeTime Limit: 1000MS Memory Limit: 30000KTotal Submissions: 17730 Accepted: 5784DescriptionGive a tree with n vertices,each edge has a length(positive integer l原创 2016-08-02 21:01:46 · 533 阅读 · 0 评论 -
bzoj 2599: [IOI2011]Race (点分治)
2599: [IOI2011]RaceTime Limit: 70 Sec Memory Limit: 128 MBSubmit: 2796 Solved: 824[Submit][Status][Discuss]Description给一棵树,每条边有权.求一条简单路径,权值和等于K,且边的数量最小.N Input第一行 两个整数 n, k第二原创 2016-10-27 17:37:08 · 558 阅读 · 0 评论 -
bzoj 4372: 烁烁的游戏 (动态点分治+线段树+LCA)
题目描述传送门题目大意:给一颗n个节点的树,边权均为1,初始点权均为0,m次操作: Q x:询问x的点权。 M x d w:将树上与节点x距离不超过d的节点的点权均加上w题解对于每个点开一棵线段树,线段树中维护到这个点距离为x的所有增量。 修改一个点的时候需要修改这个点到点分树的根路径上所有点的答案。 查询的时候也是一样。代码#include<iostream>#include<cstdi原创 2017-06-05 10:07:14 · 1139 阅读 · 0 评论