————点分治
BAJim_H
比孤独更可悲的事情,就是根本不知道自己很孤独,或者分明很孤独,却把自己都骗得相信自己不孤独。
展开
-
树上基于点的分治
Preface之前一直没有时间弄这个,直到前段时间模拟赛出了一道点分治的题目,然后就眼睁睁看着人家切自己不会做。唉~Text其实这玩意是蛮水的一个东西,对于当前递归到的子树,选出一个点为根,然后分治这个点的各个子树。学问就在找这个点上。显然,找重心是最优的。找当前子树的重心,那么它的每棵子树的大小不超过当前树的一半,所以至多递归logNlog N层然后每一层最多只有NN个点,所以复杂度是NlogNN原创 2016-09-09 20:10:14 · 600 阅读 · 0 评论 -
[JZOJ3329] 树上的路径
Description 给定一棵N个结点的树,结点用正整数1..N编号,每条边有一个正整数权值。用d(a,b)表示从结点a到结点b路径上经过边的权值和,其中要求a<ba<baO(Nlog2N)O(Nlog2N)O(Nlog^2N) Code #include <cstdio> #include <cstdlib> #include <ios...原创 2018-07-15 17:11:13 · 592 阅读 · 0 评论 -
[JZOJ4202] Shopping
Description Solution 简化题意就是选择一个树上的联通块,这个联通块中所有商店至少买一个做背包 树上联通块问题往往可以通过点分治转化成树形依赖问题 先对于整棵树点分治,每个分治中心分别作为当前分治子树的根来树形依赖背包就可以了 多重背包可以拆分成log个独立的物品来考虑 好像还有一种单调队列的做法可以省掉这个log? 复杂度O(NMlognlogd)O(...原创 2018-06-18 17:59:35 · 239 阅读 · 0 评论 -
[JZOJ5577]【NOI2018模拟3.11】派对
Description 你想举行一场派对,有m个朋友会来参加。 你有n个房间,由n-1条道路(有长度)连接,形成一个树结构。你需要给每个朋友安排一个房间,满足以下条件: 每个朋友住在一个单独的房间; 存在一个房间(不一定要有人),使得每个朋友到它的距离不超过k。求方案数对998244353取模的结果。 对于全部数据,1<=m<=n<=10^5,1&...原创 2018-03-14 21:30:17 · 474 阅读 · 0 评论 -
[AtCoder Grand Contest 009] D: Uninity (agc009D)
原题链接 https://agc009.contest.atcoder.jp/tasks/agc009_d Description 给你一棵n个节点的树 你需要找到一种点分治方案,使得点分树的深度最小,输出这个最小深度(根的深度为0) n<=100000 Solution 我们将每个点标号,表示这个点在点分树中的深度 有性质:两个标号相同的点之间的路径上一定有一个标号...原创 2018-02-26 21:43:34 · 366 阅读 · 0 评论 -
[JZOJ5513] 送你一棵圣诞树2
Description 给出一棵N个点的树 在树上进行随机点分治,每个节点需要你确定一个不超过K的权值,点分树上的父亲的权值严格小于儿子的。 问有多少种不同的结果,两种结果不同当且仅当某一个节点在点分树上的父亲不同或者它们的权值不同 1 Solution 直接按照题意模拟,N基本上都要存在于指数中 考虑转化题意。 点分治是有着严格的大小关系的,不妨倒过来想,确定原创 2018-01-09 21:21:39 · 494 阅读 · 0 评论 -
[JZOJ3978] 寝室管理
Description r 128 的寝室条件不是很好,所以没有很多钱来装修。n间寝室仅由n − 1条双向道路连接,而且任意两间寝室之间都可以互达。最近,r 128 被要求对一条路径上的所有寝室进行管理, 这条路径不会重复经过某个点或某条边。 但他不记得是哪条路径了。他只记得这条路径上有不少于k个寝室。 于是,他想请r 64 帮忙数一下,有多少条这样的路径满足条件。 嗯…还有一原创 2018-01-05 22:40:16 · 267 阅读 · 0 评论 -
[JZOJ5050] 颜色树
Description 思源湖畔有一棵树,那是独孤玉溪最喜欢的地方。 传说中,这棵不见边际的树有N个节点,每个节点都有1片叶子,每片叶子都拥有K种颜色中的一种,独孤玉溪喜欢爬到这棵树上,沿着一条路线摘叶子,并拥有所有颜色的叶子。 独孤玉溪会选择一个起点,并沿着树边走,然后最终停在一个终点上(起点和终点可能相同),当然了每一个结点只能经过一次(每一片叶子只能摘一遍)。独孤玉溪突生奇想,原创 2017-04-24 20:47:45 · 847 阅读 · 1 评论 -
[JZOJ3872][CF 434E] 圣诞树
Description 圣诞节到了,小可可送给小薰一棵圣诞树。这棵圣诞树很奇怪,它是一棵多叉树,有n个点,n-1条边。它的每个结点都有一个权值。小可可和小薰想用这棵树玩一个游戏。 定义(s,e)为树上从s到e的简单路径,我们可以记下在这条路径上经过的结点,定义这个结点序列为S(s,e)。 我们按照如下方法定义这个序列S(s,e)的权值G(S(s,e)):假设这个序列中结点的权值为Z0原创 2017-01-19 22:11:46 · 704 阅读 · 0 评论 -
[POJ1741][JZOJ1166] 树中点对距离(点分治模板)
Summary给出一棵带边权的树,问有多少对点的距离<=LenSolution显然应该用点分治。对于当前递归到的子树的所有路径,我们只考虑经过根的,不经过根的会在以后递归到。要么是从根出发,要么是根在路径上。先找出重心。然后重心每棵子树做,将该子树的所有点到重心的距离存起来,排个序和前面做过的比较计算答案,再加到前面的数组中,所有子树做完以后继续向下分治。每一层O(NlogN)O(Nlog N),有原创 2016-09-09 20:33:48 · 465 阅读 · 0 评论 -
[JZOJ5898]【NOIP2018模拟10.6】距离统计
Description 给定一棵n个节点的带边权树,m组询问,每次询问两个数u,k,求出u本身外到u的第k小距离(相等距离会算多次) n,m&lt;=50000 Solution 这绝对假NOIP。。 首先肯定是二分答案,将问题转化为判定性问题,求有多少个距离小于mid的 把点分治树构出来,对于每个节点弄出以它为分治中心(点分树上以它为根的子树)的节点到它的距离,排好序。 查询某一个点的某一个...原创 2018-10-15 15:50:16 · 176 阅读 · 0 评论