树形dp。 本来是想做一系列树分治的,结果这道题树形dp就可以了(膜popoqqq大神) f数组保存每个节点距离为0,1,2的点对数量。 不断统计就可以辣。 #include #include #include using namespace std; const int maxn = 20000 ... ...
分类:
其他好文 时间:
2016-07-09 00:44:53
阅读次数:
201
感受: 就是把分治结构变成树(并不需要真正建出,只需要记录父亲) 然后每个点维护子树到该点的信息,和子树到父亲点的信息 总体来说还是很模板的一个东西 题目大概分成两类: (1)树上黑白点染色,问一个点到所有黑点的距离和 这种就是原来真正的树结构上信息修改,那么一般就是将修改的点在分治树上所在的链每个 ...
分类:
其他好文 时间:
2016-07-08 21:38:37
阅读次数:
222
1.斯坦纳树http://www.cnblogs.com/wjyi/p/5633460.html 2.动态树分治http://www.cnblogs.com/Candyouth/p/5432441.html 3.插头dp http://www.cnblogs.com/wjyi/p/5654500.h ...
分类:
其他好文 时间:
2016-07-08 21:27:10
阅读次数:
117
树分治。 网上有部分人的题解写的啥呀。。。 按重心进行分治。 首先O(n)算出以当前点为根depth(u)+depth(v) #include #include using namespace std; const int maxn = 10000 + 10; const int maxm = 20... ...
分类:
其他好文 时间:
2016-07-08 16:36:16
阅读次数:
131
斜率优化+树分治。 点分治:找出当前子树的重心,分治根到重心这一段,更新根到重心这一段的值,将剩下的点按能到达的高度从低到高排序,更新。分治其他子树。 #include #include #include #define LL long long using namespace std; const... ...
分类:
其他好文 时间:
2016-07-05 13:50:46
阅读次数:
162
树分治用于解决有关路径的问题。树分治分为点分治和边分治(其实还有一种叫“链分治”,是树的路径剖分思想的更高级的体现,一般链分治的题目都可以用路径剖分解决)。点分治就是每次找到重心,然后把重心去掉,对分成的每两棵树之间分别统计路径信息(以重心的每个相邻点为根,遍历整棵子树即可得到这个根到每个结点的统计 ...
分类:
其他好文 时间:
2016-07-04 21:54:26
阅读次数:
193
前几天去填重建计划的坑的时候无意中发现自己的树分治一直有一个地方有点bug,是错误的QAQ(但是貌似影响不大 于是皇德耀世,赶紧去找了几道树分治来练习一下 bug是每次树分治找重心的时候sum直接用的w数组,可是对于每一层w数组要重新计算(然而我并没有QAQ WC2010 重建计划 这是一份bug重 ...
分类:
其他好文 时间:
2016-06-03 08:42:38
阅读次数:
291
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2599 题意:给一棵树,每条边有权.求一条路径,权值和等于K,且边的数量最小. 题意:每次找到当前树的重心作为树根,查找通过当前树根的路径。 ...
分类:
其他好文 时间:
2016-05-28 19:11:19
阅读次数:
205
题目链接:http://www.codechef.com/problems/PRIMEDST/ 题意:给出一棵树,边长度都是1。每次任意取出两个点(u,v),他们之间的长度为素数的概率为多大? 树分治,对于每个根出发记录边的长度出现几次,然后每次求卷积,用素数表查一下即可添加答案。 ...
分类:
其他好文 时间:
2016-05-26 20:35:24
阅读次数:
219
1468: Tree Description 给你一棵TREE,以及这棵树上边的距离.问有多少对点它们两者间的距离小于等于K Input N(n<=40000) 接下来n-1行边描述管道,按照题目中写的输入 接下来是k Output 一行,有多少对点之间的距离小于等于k Sample Input 7 ...
分类:
其他好文 时间:
2016-05-08 19:50:03
阅读次数:
231