显然这个图是一课树,看着题目首先联想到LCA(肯定是可以解的)。但是看了一下数据大小,应该会TLE。然后,忽然想到一个前面做过的题目,大概是在一定条件下树中某结点旋转成为根后查询最长路径。结果灵感就来了,主要思路是对于每个结点,第一次dfs得到两个变量到P结点的最大值以及次大值。然后,第二次dfs对...
分类:
其他好文 时间:
2015-07-11 21:20:29
阅读次数:
107
题目链接:hdu 2196题目大意:有n台电脑,每台电脑之间都用电缆相连,当然了这是n-1边树。然后问每台电脑所能到达的最远电脑的距离。思路:首先第一反应思路有点像单源最长路径。。。但是有n台电脑,都来一发估摸着n^2logn的时间复杂度(果断t了)。后来想想又有点树的分治的感觉,分枝节处理,,,,...
分类:
其他好文 时间:
2015-07-10 14:57:17
阅读次数:
134
题意:统计一棵带权树上两点之间的最长距离以及最长距离的数目链接:点我首先统计出结点到叶子结点的最长距离和次长距离。然后找寻经过这个点的,在这个为根结点的子树中的最长路径个数目。 1 #include 2 #include 3 #include 4 #include 5 using ...
分类:
其他好文 时间:
2015-06-18 11:15:32
阅读次数:
104
一,旅行商问题与H回路的联系(H回路 定义为 哈密尔顿回路)旅行商问题是希望售货员恰好访问每个城市一次,最终回到起始城市所用的费用最低,也即判断图中是否存在一个费用至多为K的回路。(K相当于图中顶点的个数)由于售货员可以从某个城市到其他任何一个城市。因此,该问题对应的是一个完全图(设为G′)。而关于...
分类:
其他好文 时间:
2015-05-30 17:54:00
阅读次数:
289
给出一棵二叉树,寻找一条路径使其路径和最大,路径可以在任一节点中开始和结束(路径和为两个节点之间所在路径上的节点权值之和)
样例
给出一棵二叉树:
1
/ 2 3
返回 6
分析:每条最长路径都肯定会以某个顶点为跟,然后两边是以那个节点为跟到叶子节点的最长路径。
代码:
/**
* Definition of Tre...
分类:
其他好文 时间:
2015-05-21 22:34:54
阅读次数:
268
hdu 2196http://acm.hdu.edu.cn/showproblem.php?pid=2196input5//5个结点1 1//表示结点2到结点1有一条权值为1的边2 1//表示结点3到结点2有一条权值为1的边3 11 1要我们求从任意结点出发的最长路径。思路:一棵树上从某个结点出发的...
分类:
其他好文 时间:
2015-04-15 19:24:06
阅读次数:
175
树的最长路径,即求一颗树的直径问题,dfs和bfs都可一解决,但一直觉得dfs的比较绕,不好理解。于是写了bfs的方法,其中0节点当作哨兵,每次从队列中取出0节点的时候,就知道一轮bfs结束,可以把深度加一。bfs的思路很简单:1.随便找一个节点,以该节点为起点进行一次bfs,得出的最后一个顶点,一...
分类:
其他好文 时间:
2015-04-13 20:17:08
阅读次数:
131
参考书籍《数据结构与算法分析——C语言描述》
连接俩个节点的称为边
一棵树是N个节点和N-1条边的集合
没有儿子的节点称为树叶(叶)。
具有相同父亲的称为兄弟。
对任意节点ni,ni的深度为从根到ni的唯一路经长,其中根的深度为0。一棵树叶的深度等于它最深的树叶深度。
ni的高是从ni到一片树叶的最长路径的长,一棵树的高等于它根的高,所有树叶的高都是0.
某路径的长为该路径...
分类:
其他好文 时间:
2015-04-13 09:39:01
阅读次数:
129
题意:给出一个二维矩阵,要求从其中的一点出发,并且当前点的值总是比下一点的值大,求最长路径记忆化搜索,首先将d数组初始化为0,该点能够到达的路径长度保存在d数组中,同时把因为路径是非负的,所以如果已经计算过某个点,那么这个点的d一定是正的,所以每次搜的时候判断一下d[i][j],如果是正的,就不用再...
分类:
其他好文 时间:
2015-03-08 15:30:05
阅读次数:
137
题意:N个点构成一棵树。树枝的长度都是1。在当中找两条不相交【没有公共点】的路,使得二者长度之积最大。(2?≤?n?≤?200)思路:一开始思路好麻烦,好麻烦,好麻烦,,,,,,,而且WA,,,,,正解:必定存在第三条路径连接两条最长路径。【因为是一棵树】。去掉第三条路径上的某根树枝就可以将原树分成...
分类:
其他好文 时间:
2015-03-06 22:11:33
阅读次数:
168