最小方差生成树:
问题:方差最小,按公式计算那么就是每条边的(val - ave)^2的和最小,在kruskal中就按这个排序,这里要有ave就要有和,求和的话就在最大值和最小值之间取就好,求和的方法是将边权从小到大排列,最小值取最小的n-1个,最大的去从大往小的n-1个值的和,和在这之间枚举,计算出每次枚举获得的值,不过在最后求得最小生成树后,要确认所生成最小生成边的边权值等不等于枚举的sum值,相等才说明这个生成树是满足和为sum的情况,这个最小生成树才睡有效的,才能更新最小值。
道路和航路
由于道路是双向的(非负),而航线是单向(可能为负,但是航线没有回路)。 那么我们可以按照道路相连的点划分为几个连通块 。航线就是连接各个连通块的边,根据题目描述,这些连通块符合拓扑序。
由于每个连通块内部的点都是道路相连(道路非负),那么我们可以在连通块内部求一次djkstra。按照拓扑序的顺序对每个连通块求解一次djkstra。按照拓扑序的顺序对每个连通块求最短路,这样就可以在求某个连通块时,其他连通块若能到达这个块,那么必然起点到其他点的最短路已经求好了,符合航线不构成回路的设定。
基本概念:
树是一种数据结构,它是由n(n≥0)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:
每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外,每个子节点可以分为多个不相交的子树。
种类:
种类
编辑 播报
无序树:树中任意节点的子结点之间没有顺序关系,这种树称为无序树,也称为自由树;
有序树:树中任意节点的子结点之间有顺序关系,这种树称为有序树;
二叉树:每个节点最多含有两个子树的树称为二叉树;
满二叉树:叶节点除外的所有节点均含有两个子树的树被称为满二叉树;
完全二叉树:除最后一层外,所有层都是满节点,且最后一层缺右边连续节点的二叉树称为完全二叉树;
哈夫曼树(最优二叉树):带权路径最短的二叉树称为哈夫曼树或最优二叉树。