树分治
Roll_Keyboard
这个作者很懒,什么都没留下…
展开
-
bzoj2599/洛谷4149 [IOI2011] Race(树分治)
题意:洛谷的地址 给一棵树,每条边有权。求一条简单路径,权值和等于 K ,且边的数量最小。思路:这题bzoj下线了,就去洛谷上A的 其实是一个比较简单的点分治 但是这题和之前的点分治不太一样(这题),这里的要求和之前不一样,我们不能算完重心的情况再去算子树的情况了 我们换一个思路,我们先遍历一颗以重心的儿子为根的子树,然后和一个之前的num(num[i]表示,到重心距离为i时最少经过几个边)原创 2018-04-15 16:07:03 · 238 阅读 · 0 评论 -
HDU 4812 D Tree(树分治)
题意:一棵树,每个点有一个权值,求一对点的路径上的点的乘积取模后恰好为k,输出标号最小的点对思路:点分治 首先我们要求的是 (a*b)%mod=k 如果我们知道a,那么b就是(k*inv[a])%mod 而我们点分治的时候,先求出重心,然后处理出一颗子树上的点到root的乘积,然后乘root取模找逆元,看看map里面有没有,再把这些数存到map里。这样处理完一颗子树,然后把这棵子树的东西放进m原创 2018-04-15 21:14:48 · 214 阅读 · 0 评论 -
POJ 1741 Tree (树分治)
题意:一颗有边权的树,问有多少对点距离和小于k思路:树分治 我们取一颗树的重心,算出所有点到这个点的距离,然后我们就能通过排序去o(n)地找出有多少对是满足的,但是这样很明显有的对是不正确的,就是这两个点的lca并不是当前重心的时候 我们可以想到,当且仅当两点在同一以重心儿子为根的子树中,才能发生错误,我们就可以单独求一次某个子树的不符合数量即可 然后我们删去当前重心,继续去看拆掉重心后的子树原创 2018-04-12 21:21:30 · 158 阅读 · 0 评论 -
bzoj 2152 聪聪可可 (树分治)
题意:一棵有边权的树,问有多少对点的简单路径权值和模3为0思路:简单的树分治,每次处理出重心后,处理出到重心的距离,然后为0的直接平方,1和2的相乘并乘2(因为(2,3),(3,2)算两对),然后删去不合法的对数,再删去重心。 重复以上过程就行了错误及反思:发现难的树分治不会,还是刷刷简单的慢慢来吧 还有,他们是怎么跑到100多的。。。代码:#inc原创 2018-04-13 16:43:47 · 193 阅读 · 0 评论 -
codeforces 161D D. Distance in Tree (树分治)
题意:问一颗树有多少个路径距离为k思路:是poj1741的简单版,在树分治的时候,对于某个重心只要维护某个长度的有多少即可,因为k很小,所以可以直接开个数组存错误及反思:中间加的过程忘了会爆int了。。。代码:#include<bits/stdc++.h>#define fi first#define se secondusing namespace std;const int N = 50原创 2018-04-13 17:09:12 · 317 阅读 · 0 评论 -
Codecraft-18 and Codeforces Round #458 E. Palindromes in a Tree(点分治)
题意:&nbsp;&nbsp;&nbsp;&nbsp; 一棵树,每个点都有一个字母,如果一条路径的字符的某个排列是回文串,就称这个路径是回文的,问经过每个点的回文路径有多少条思路:&nbsp;&nbsp;&nbsp;&nbsp; 很明显的点分治。首先因为字母是a到t,所以可以状压一下,利用异或来改变路径的状态,如果二进制中1的个数小于等于1,那么就是回文的(利用__bu原创 2018-06-14 13:02:30 · 234 阅读 · 0 评论 -
SPOJ FTOUR2 Free tour II (点分治+启发式合并)
题意:树上n个点,点有黑有白,一条路径上黑点个数不超过k个的最大权值是多少思路: 从点分治上想,我们每次统计通过某个点的,符合条件的路径最大权值,然后不停更新答案。当我们遍历完某个子树,就把这个子树的信息和之前子树合并,然后不停更新即可。很明显,我们要维护当经过黑点为x个时的最大权值。 假...原创 2018-06-17 13:49:20 · 510 阅读 · 0 评论 -
牛客多校训练(第一场)H-Longest Path(点分治+李超树)
题意: 一颗有边权的树,对于一条路径(u,v),假设经过的边权为e1,e2,e3,...efe1,e2,e3,...efe_1,e_2,e_3,...e_f,则该路径权值cal(u,v)为(e2−e1)2+(e3−e2)2+...+(ef−ef−1)2(e2−e1)2+(e3−e2)2+...+(ef−ef−1)2(e_...原创 2018-07-25 10:45:51 · 593 阅读 · 0 评论