树树树
薄层
努力就有收获~
展开
-
HDU-6121 Build a tree - 2017 Multi-University Training Contest - Team 7(完全K叉树)
HazelFan wants to build a rooted tree. The tree has nn nodes labeled 00 to n−1n−1, and the father of the node labeled ii is the node labeled. HazelFan wonders the size of every subtree, and you just need to tell him the XOR value of these answ原创 2017-08-16 23:38:09 · 288 阅读 · 0 评论 -
Prim算法最小生成树
学习本算法之前,先来回顾一下Dijistra算法的核心:用一个数组dis来记录源点到各个顶点的距离,然后每次扫描dis数组,从中选择出离源点最近的顶点,看通过该顶点为始点的边能否更新源点到其他各个顶点的距离。 这里我们对这个方法稍稍改变一下,便能得到prim算法的核心。在这里用dis数组记录生成树中到各个顶点的最短距离,也就是说现在的最短距离不是到源点的最短距离,而是到已经被选入生成树中顶点的最原创 2017-03-07 16:00:15 · 303 阅读 · 0 评论 -
kruskal最小生成树
Kruskal算法的核心思想就是将边的权值从小到大进行枚举,枚举的过程中看该边的两点是否连通,假如不连通,那么这条边就可以加入到最小生成树中,假如连通,再将其加入最小生成树中,会产生回路。 假如生成最小生成树到了上图这个时刻,此时有还有两条边的信息,45 权值为7, 43 权值为9,所以此时可看出4,5是连通的,应该忽略进行下一轮,此时43权值为9,可知3,4两点不连通,加入到最小生成树中。原创 2017-03-07 15:14:30 · 268 阅读 · 0 评论 -
树的直径 —— 即一棵树的最长路 附题(大臣的旅费 by蓝桥杯)
直接上求法:两遍bfs就可以求得最长路的两个端点。 参考结论:从任意一点出发能搜到的最远的点一定是最长路两个端点中的一个。 (注意:最远可以是权值最远,也可以是边数最多,总之思想是相通的,求法也一样) 证明如下: 首先,设a -- b 是最长路 ① 设点u为最长路a -- b上的一个点,所以从该点出发,所能到达的最远的点肯定是a,b之一。 ② 设点u不是最长路a -- b上的一点,这里原创 2017-02-27 23:17:37 · 570 阅读 · 0 评论 -
codeforces-884D Boxes And Balls(思维、三叉哈夫曼树)
Ivan has n different boxes. The first of them contains some balls of n different colors. Ivan wants to play a strange game. He wants to distribute the balls into boxes in such a way that for every i (1 ≤ i ≤ n) i-th box will contain all balls with color i.原创 2017-11-01 14:52:44 · 678 阅读 · 0 评论