不来也不去的一只失忆蝴蝶

曾迷途才怕追不上满街赶路人

[2017集训队作业自选题#117]Monkey and Tree

题目大意一颗边权树,给你若干点对(ai,bi)。 找到两对点对i和j,使得dis(ai,aj)+dis(bi,bj)最大。做法先建立点分树。 然后进行点分,对于当前分治中心x,讨论最终点对中两个a路径是否过x。 不过x,递归处理。 过x,求出当前分治联通块每个点到x的距离,然后接下来按一个...

2017-11-14 12:08:21

阅读数:249

评论数:0

[JZOJ5131][SDOI省队集训2017]距离

题目描述点分治询问拆成四条到根的询问。 bfs一遍,处理出可持久化点分树。 查询直接查。#include<cstdio> #include<algorithm> #include<cmath> #define fo(i,a,b) for(i=a;i<=...

2017-06-09 22:18:30

阅读数:222

评论数:0

[bzoj4860]树的难题

题目大意点分治点剖。 每颗子树按最上面那条边的颜色排序。 顺序扫,同颜色的用一颗线段树,其他也用一颗线段树。 每扫过一个颜色合并一下两颗线段树。 这个方法比单调队列不知道低到哪里去了。#include<cstdio> #include<algorithm> #def...

2017-04-21 15:04:31

阅读数:950

评论数:2

采蘑菇

题目描述A君住在魔法森林里,魔法森林可以看做一棵n个结点的树,结点从1~n编号。树中的每个结点上都生长着蘑菇。蘑菇有许多不同的种类,但同一个结点上的蘑菇都是同一种类,更具体地,i号结点上生长着种类为c[i]的蘑菇。 现在A君打算出去采蘑菇,但他并不知道哪里的蘑菇更好,因此他选定起点s后会等概率随...

2017-04-18 10:45:31

阅读数:256

评论数:0

树上路径

题目描述给定一颗n个结点的无根树,树上的每个点有一个非负整数点权,定义一条路径的价值为路径上的点权和-路径的点权最大值。 给定参数p,我们想知道,有多少不同的树上简单路径,满足它的价值恰好是p的倍数。 注意:单点算作一个路径;u ≠ v时,(u,v)和(v,u)只算一次。题解随便点分治 同一...

2017-04-18 10:43:46

阅读数:210

评论数:0

颜色树

题目大意树上每个节点均有颜色。 求有多少条路径包含了所有k种颜色。k<=10点分治点分治后处理到根的二进制状态表示包含的颜色。 问题转化成插入若干个二进制数,查询包含某个二进制数的二进制数有多少个。 可以插入O(1)查询O(2^k) 考虑综合插入和查询的复杂度。 设f[A,B]表示...

2017-04-15 16:59:14

阅读数:286

评论数:0

[bzoj3451]Tyvj1953 Normal

题目大意点分治过程中每次随机选择分治中心。 求期望复杂度。期望的线性性容易知道可以单独考虑每个点的贡献。 对于x和y,我们考虑y能否给x带来1的贡献,即y是否是x在点分树上的祖先。 那么Y必须是x到y上第一个被选择为分治中心的点。 一条路径上每个点成为第一个被选择的点概率均等,因此贡献为1...

2017-04-07 09:39:30

阅读数:601

评论数:0

[hackerrank]Self-Driving Bus

题目大意一颗n个节点的树,现在问有多少对[l,r]满足保留编号[l,r]的点在树上是联通块。 n<=1e5点剖点分治一波 一个联通块要么包含分治中心,要么不包括,后者递归分治处理。 假设分治中心编号为x。用fa表示在树上的父亲(以x为根) 我们找到极大区间[l,r]包含x使得编号[l...

2017-02-24 22:23:26

阅读数:270

评论数:0

第K大

题目描述一棵具有n个节点的树,每条边(u,v)有一个边权w(u,v)。定义d(i,j)表示离点i第j近的点的距离,且d(i,1)=0。对于每个点i,给你一个Ki,要对每个点求出d(i,Ki)。点分治二分转为判定性问题。 提前预处理点分治树方便询问即可。#include<cstdio>...

2017-01-12 20:59:57

阅读数:290

评论数:0

[bzoj4182]Shopping

题目大意有一颗树,每个节点相当于是一种物品,有三个因素价值、价格、个数。 在树上选一个联通块,然后做多重背包,要求每种物品必须选。 求最大价值。点分治我们进行点分治。 对于分治中心,要么在联通块中,要么不在。 不在的情况就是递归继续处理。 在的话,以分治中心为根造一颗树,然后做依赖多重背...

2016-09-25 12:01:03

阅读数:677

评论数:0

异或树

题目大意给出一颗树。 求∑n−1i=1∑nj=i+1(a[i] xor a[j])∗dis(i,j)\sum_{i=1}^{n-1}\sum_{j=i+1}^n(a[i]\ xor\ a[j])*dis(i,j) dis(i,j)表示i到j的最短路。点剖这不用说了,拆位,然后点剖。 因为是有...

2016-05-14 12:48:40

阅读数:815

评论数:0

染色

题目大意给定一颗树,每个点默认白色,有两种操作。 把一个点染黑(不保证此时该点为白色) 询问一个点与所有黑点的距离和树剖先把原树转化为有根树。 然后询问一个点u,就是枚举每一个黑点v 然后贡献为d[u]+d[v]-2*d[lca(u,v)] 记录黑点的总个数和深度和,前两项很容易求和,最...

2016-04-14 19:30:33

阅读数:445

评论数:0

[bzoj3784]树上的路径

题目大意给出一颗树,边有边权,输出点对距离前K大。点剖我们先思考如果不是树是序列该怎么做。 显然先按照权值从大到小排序,然后扔进堆中n个点对(i,1),对于点对(i,j)其权值是i到j的距离。 每次从堆中取一个,然后把第二维加1再丢进去(当然要求丢进去的点对合法) 那么这道题点剖以后,对于每...

2016-03-09 19:13:29

阅读数:1084

评论数:0

树中点对距离

题目大意在一颗N个结点的树上,统计有多少点对最短距离<=m。(点对不存在顺序性)N<=10000点分治我们选取一个点x作根,那么任何点对都分成两种类型 1、经过x 2、不经过x 我们对经过x的进行统计,对于不经过x的继续在x的子树中分治下去。这就是点分治。 我们处理出每个点的深...

2016-01-02 15:55:01

阅读数:915

评论数:0

阴阳

题目大意给定一颗有n个结点的树,每条边的权值为1或-1。问有多少点对(i,j)(注意点对不存在顺序性),满足i到j的最短路径上能找到一个点k,使得i到k的最短路径权值和为0,k到j的最短路径权值和为0。 n<=100000。点分治我们进行点分治。 对于当前的根x,我们统计有多少对经过了x...

2015-12-28 19:30:25

阅读数:316

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭