
树上问题
jokerwyt
这个作者很懒,什么都没留下…
展开
-
jzoj6420 迷雾华光 (区间众数,树分块)
树分块区间众数原创 2019-11-10 20:27:55 · 265 阅读 · 0 评论 -
jzoj5629 【NOI2018模拟4.4】Map (业界毒瘤仙人掌缩环,线段树合并)
Description Rin是个特别好动的少女。 一天Rin来到了一个遥远的都市。这个都市有N个建筑,编号从1到N,其中市中心编号为1,这个都市有M条双向通行的街道,每条街道连接着两个不同的建筑,其中某些街道首尾相连连接成了一个环。Rin通过长时间的走访,已经清楚了这个都市的两个特点: 从市中心出发可以到达所有的建筑物。 任意一条街道最多存在与一个简单环中。令Rin心花...原创 2018-04-05 16:57:16 · 336 阅读 · 0 评论 -
jzoj5678 【GDOI2018Day2模拟4.21】果树 (模型转化,覆盖线段树求在矩阵中点数)
DescribeNiroBC 姐姐是个活泼的少女,她十分喜欢爬树,而她家门口正好有一棵果树,正好满足了她爬树的需求。 这颗果树有N个节点,节点标号 1…N。每个节点长着一个果子,第i个节点上的果子颜色为 Ci 。 NiroBC姐姐每天都要爬树,每天都要选择一条有趣的路径 (u,v) 来爬。 一条路径被称作有趣的,当且仅当这条路径上的果子的颜色互不相同。 (u,v) 和 (v,u) 被视...原创 2018-04-21 23:04:33 · 403 阅读 · 0 评论 -
gdoi2018 D2T2 滑稽子图 (树形DP,式子认知)
题意给定n个点的树,定义f(S)为点集S的导出子图的边数,求∑Sf(S)k∑Sf(S)k\sum_{S}f(S)^k。n<=10^5,k<=10。题解居然tmd没想出来wtf,对着k=2想了好久,明明就是送分(命)题。设fi,0/1,kfi,0/1,kfi,0/1,k表示以i为根子树,第i个点是否选的所有方案边数k次方和。考虑将子树y与父亲x如何转移。 先考虑...原创 2018-05-05 14:08:18 · 424 阅读 · 0 评论 -
jzoj3329 【NOI2013模拟】树上的路径 (点分治,前K大问题)
题意给定一棵N个结点的树,结点用正整数1..N编号,每条边有一个正整数权值。用d(a,b)表示从结点a到结点b路径上经过边的权值和,其中要求a<ba<ba原创 2018-07-11 19:43:05 · 996 阅读 · 0 评论 -
jzoj4388 【GDOI2016模拟3.15】染色 (idea, 数据结构毒瘤)
题意 n <= 1e5乍一看就是log2log2log^2idea也比较多的题好吧,一看操作,瞬间上cdq分治 + 虚树, 4k能写完+调完也是佩服自己。先说一个比较经典的做法然而并不需要这么麻烦,考虑u,v之间多算的距离,就是 2∗dis[lca]2∗dis[lca]2 * dis[lca]对于任意一个黑点x,将x到根的路径上标记 + 1 那么查询点y...原创 2018-07-19 21:15:33 · 316 阅读 · 0 评论 -
jzoj5814 【NOIP提高A组模拟2018.8.14】 树 (树上期望,递归法列方程)
题面梦游中的你来到了一棵 N 个节点的树上. 你一共做了 Q 个梦, 每个梦需要你从点 u 走到 点 v 之后才能苏醒, 由于你正在梦游, 所以每到一个节点后,你会在它连出去的边中等概率地 选择一条走过去, 为了确保第二天能够准时到校, 你要求出每个梦期望经过多少条边才能苏 醒. 为了避免精度误差, 你要输出答案模10^9 + 7的结果. 对于 100%的数据, N <= 100000...原创 2018-08-14 19:00:17 · 431 阅读 · 0 评论 -
jzoj5824 party (Hall定理,最大流转换为最小割DP求解)
题意 n<=3e5,q<=5e4,m<=1e3模型转换当确定每个人能带的颜色(特产)后,就变成了一个网络流问题。 每个人向它的颜色连边,颜色向T连1容量的边。 可以二分一个答案mid,然后从S给每个人连这么多容量的边,若能跑满则存在解。因为左边5个点,可以枚举左边怎么选,求出最小割(=最大流)就行。然而并不需要这么麻烦,容易发现上面的模型可以变为: 将一...原创 2018-08-16 20:32:42 · 529 阅读 · 0 评论 -
bzoj2555 SubString (SAM+LCT维护子树大小/ETT)
Description懒得写背景了,给你一个字符串init,要求你支持两个操作(1):在当前字符串的后面插入一个字符串(2):询问字符串s在当前字符串中出现了几次?(作为连续子串)你必须在线支持这些操作。毒瘤显然就是sam求endpos大小,强套LCT。时隔多年又打了一次维护子树大小。大致就是维护:fsum[x]表示虚父亲为x的tsum和。tsum[x]表示x的splay和,=...原创 2018-10-20 22:09:59 · 408 阅读 · 0 评论 -
jzoj3667 【HNOI2014】世界树(worldtree) (虚树上dp)
虚树对于若干个点可以在原树的基础上建出虚树,其实就是原树的浓缩,去掉了无用节点。 此题多次询问,但m之和与n同阶,适合使用虚树。 建一次虚树的时间与虚树点数有关,而不与原树点数相关。 (所以要注意数组清零之类的东西啊喵喵)虚树的合成方法: 首先求出所有虚树上的点:m个给出点与每两个给出点的lca. lca其实最多m个,考虑将m个点按照原树dfs序排序。 假如顺序为x,y,z,则lca(x,z)原创 2018-02-01 21:40:07 · 314 阅读 · 0 评论 -
jzoj5484 【清华集训2017模拟11.26】快乐树 (发现性质的dp)
题面一棵树有n个节点,编号为0到n-1。有一条叫Owaski的狗在树上面走,每一次它可以从一个顶点走到它的任何一个相邻顶点。每个顶点有个可正可负的快乐度,Owaski也有一个快乐度,这个值最开始是0。在他到达一个 顶点的时候,他的快乐度将会加上该顶点的快乐度。当然有时候Owaski的快乐度会是负数,这个时候他会很难受于是会宣泄情绪让快乐度重新变成0。Owaski是一条喜新厌旧的狗,如果它经过了任何原创 2017-11-29 20:30:08 · 416 阅读 · 0 评论 -
jzoj5433 【NOIP2017提高A组集训10.28】图
题面有一个n个点A+B条边的无向连通图,有一变量x,每条边的权值都是一个关于x的简单多项式,其中有A条边的权值是k+x,另外B条边的权值是k-x,如果只保留权值形如k+x的边,那么这个图仍是一个连通图,如果只保留权值形如k-x的边,这个图也依然是一个连通图。 给出q组询问,每组询问给出x的值,问此时这个无向连通图的最小生成树权值是多少。 对于100%的数据,1<=n,q<=100000 , n-原创 2017-11-01 20:14:58 · 387 阅读 · 0 评论 -
初识点剖(基于点的树上分治)
有一类问题,是关于树上路径,树上点对,树上XX…之类的,我们可以考虑运用分治算法. Description 给你一棵TREE,以及这棵树上边的距离.问有多少对点它们两者间的距离小于等于K Input N(n<=40000) 接下来n-1行边描述边,按照题目中写的输入 接下来是k Output 一行,有多少对点之间的距离小于等于k如果说维护的是路径,那么这条路径有三原创 2016-08-20 09:38:34 · 892 阅读 · 0 评论 -
浅析树状数组
原名Fenwick Tree/Binary Index Tree存在的必要树状数组能做的,线段树都能做,而且学上来线段树比他简单许多 但树状数组的时空复杂度相对于线段树都优了许多,看下面这张对比图 一个显然的结论 节点数从2n减少至n, 这样一来,虽然说其操作复杂度与线段树同为log n,但常数却差别很大,大数据通常都是上百ms的差距 而且树状数组10行能解决的事情,线段树要30行线段树的原创 2016-07-18 11:04:20 · 509 阅读 · 0 评论 -
jzoj3872 圣诞树 [转化问题+推式子、点分治]
给定一棵树与k,求树中(i,j)与(j,k)与(i,k)都满足或都不满足g(l,r)=x(mody)g(l,r)=x(mod y) g(l,r)=Z0×k0+Z1×k1+…+Z(L−1)×k(L−1))g(l,r)=Z0 × k^0 + Z1 × k^1 + … + Z(L-1) × k^(L-1)) 每个点都有一个权值V[x],Z[i]表示的是L到R的简单路径上的点首先,先抽象问题。原创 2017-01-17 21:38:05 · 675 阅读 · 0 评论 -
jzoj5290 【NOIP2017提高组A组模拟8.17】行程的交集 (树上路径交,dfs序+树状数组维护姿势)
题面豪哥生活在一个n个点的树形城市里面,每一天都要走来走去。虽然走的是比较的多,但是豪哥在这个城市里面的朋友并不是很多。 当某一天,猴哥给他展现了一下大佬风范之后,豪哥决定要获得一些交往机会来提升交往能力。豪哥现在已经物色上了一条友,打算和它(豪哥并不让吃瓜群众知道性别)交往。豪哥现在spy了一下这个人的所有行程起点和终点,豪哥打算从终点开始走到起点与其相遇。但是豪哥是想找话题的,他想知道以原创 2017-08-17 16:29:25 · 1114 阅读 · 0 评论 -
jzoj5336 【NOIP2017提高A组模拟8.24】提米树 (dfs序dp,奇异姿势dp)
题面分析剪枝的意思就是你可以任意选点作为叶子。(前提是他子树不选) 比赛的时候有一种60分的n^2 log n做法,就是在dfs序上直接dp. 但是正解比较奇怪,先画颗树出来看看,就会发现根到真·叶子的路径上有且只有一个被选为叶子。于是我们考虑设一种玄学的dp。 令f[i]f[i]为在dfs序上,当前最后一个叶子选的是i的最大价值。 想想能更新i的点有哪些。 由于要保证每条到叶子的路径上都有选原创 2017-08-24 20:35:59 · 778 阅读 · 0 评论 -
jzoj4887 最大匹配
问题描述现在给你一个N个点N-1条边的连通图,希望你能够求出这个图的最大匹配以及最大匹配的数量。 两个匹配不同当且仅当存在一条边在第一个匹配中存在而在第二个匹配中不存在。 若p=1,则一行一个数输出图的最大匹配 若p=2,则一行两个数输出图的最大匹配以及最大匹配数量,答案对10^9+7取模。 比赛时过了p=1+暴力的60分解首先不难求出最大匹配. 设Gi,0/1Gi,0/1分别为这个点有没原创 2016-11-26 15:39:21 · 357 阅读 · 0 评论 -
启发式合并/dsu on tree 姿势
Dsu on Tree一场比赛有两道,好tm巧啊Problem 1这种方法其实就是通过性质优化的暴力。遍历时轻边优先。 首先肯定是拆位了,然后可以用trie维护一下某颗子树内的点的串,很容易统计答案。 (具体要看题解了) 但是暴力加/删点会T,就要用dot了。 发现计算完一个儿子的答案之后,整颗子树都被添加到了trie中。但如果要继续做其他儿子所以要清空trie. 有一颗子树是可以不用清空原创 2017-09-16 16:34:00 · 436 阅读 · 0 评论 -
jzoj5394 【NOIP2017提高A组模拟10.5】Ping
题面 分析很容易看出模型:有若干条路径,选最少的点使得每条路径上都有点。并给出方案。 考虑一条链,其实就抽象成数轴上的线段。显然是贪心。(然而我最后五分钟才想起来!?把线段按右端点从小到大排序,考虑右端点最左的一条线段,其他线段要么与他没有交集,要么从右边有交。那么这条线段取点一定是取右端点能覆盖更多的线段。 把覆盖掉的线段删除,重复上述步骤,直到覆盖完毕。 还能得出一个结论: 只选右端点。原创 2017-10-05 20:26:42 · 475 阅读 · 0 评论 -
jzoj2565 树的序号
MDZZ,这题在比赛的时候死扣了三个半小时还是没扣出来!! 首先我们设f[i]为i个点能摆成多少种树 显然有fi=∑fj∗f(i−j−1)fi=∑fj*f(i-j-1),且对于一个序号X他的节点数nodes我们是能求出来的 可以发现最多不到20个点然后就可以去枚举每一层的左右子树节点个数, 我们先求出序号X在所有nodes个节点的数中排第Y,方便我们计算,因为他的判断规则是优先左子树,那么我原创 2016-08-15 20:32:45 · 329 阅读 · 0 评论