题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。解题思路两种解法,一种是第一时间的思路,即获得根节点到每个叶节点的深度,取其中最长的返回:class Solution: def __init__(self): self. ...
分类:
编程语言 时间:
2019-09-11 16:00:49
阅读次数:
107
1.链接地址 https://vjudge.net/problem/POJ-2485#author=windsky1 2.问题描述 输入样例 1 30 990 692990 0 179692 179 0 输出样例 3.解题思路 给定一个邻接矩阵,要求求出构建出的最短路中的最长路径 一开始一直求成最短 ...
分类:
其他好文 时间:
2019-09-02 20:57:57
阅读次数:
118
思路:最短路+点分治 提交:2次 错因:更新桶的时候没有重置,而直接加上了。 题解: 对于构建最短路树,我们可以先跑最短路,然后dfs一遍连边。 然后就是点分治了,还是一些桶,存点数为$x$的最长路径的条数。记得更新路径长度时桶要清零。 代码 cpp include include include ...
分类:
其他好文 时间:
2019-08-31 11:11:45
阅读次数:
114
今天是连续打卡的第54天。 第一题:1170 这道题是APIO2009的题,是这场比赛中最水的一道题,难度评定达到蓝题水平(最近似乎在数据结构网站上做了不少省选题,感觉图论II至少一半以上都是省选,蓝题水平也感觉不算很难了)。 而且这道题的思维难度不难,Tarjan缩点+SPFA求最长路就完成了。 ...
分类:
其他好文 时间:
2019-08-31 01:02:50
阅读次数:
78
在一颗有边权的树上有m条路径,清零一条边的边权使得m条路径的最大值最小。 输出这个最大值 显然 要遍历这m条路的最长路(如果最长路有多条随意遍历一条即可) 因为树上距离不修改 那么用前缀和维护树上路径长度可以少一个log 然后遍历最长路的每一条边 ans=min(ans,max(最长路的长度-这条路 ...
分类:
其他好文 时间:
2019-08-30 15:54:50
阅读次数:
75
1 题目描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 2 思路和方法 深度优先搜索,每次得到左右 ...
分类:
其他好文 时间:
2019-08-28 01:28:00
阅读次数:
87
【问题】输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 【思路】递归解法:一般和深度有关的我们都可以使用dfs算法,然后使用一个res用于记录深度,每次递归到叶节点,将res和max进行比较,将最大的值存入max变量中,结束递 ...
分类:
其他好文 时间:
2019-08-20 22:28:43
阅读次数:
93
二叉树递归相关题目的时间复杂度基本上都是O(n) = 一共有n个点 + 每个点的时间复杂度(1) 而二叉树分治法最坏的时间复杂度为O(n^2) 时间复杂度:T(n) = 2T(n/2) + O(1) = O(n) Merge Sort, Quick Sort: T(n) = 2T(n/2) + O( ...
分类:
其他好文 时间:
2019-08-20 18:29:33
阅读次数:
90
前置芝士:Tarjan求强连通分量 对于一个有向图中的两个点,对于$V_i V_j$有一条边且$V_j V_i$有一条边(即能互相到达),就是一个强连通分量(不局限于两个点) 我们可以用$Tarjan$求出一个有向图中所有的强连通分量。 那么,在一些图中可以将强连通分量缩成一个点。并对它做一个标记。 ...
分类:
其他好文 时间:
2019-08-16 22:21:31
阅读次数:
103
[题目链接](http://acm.hdu.edu.cn/showproblem.php?pid=3499) 刚看见题目,哦?不就是个最短路么,来,跑一下dijkstra记录最长路除个二就完事了 ,但是。。。。。。 走红色的路是最佳方案,但是蓝色路的最短路跟短,我想错了; 不久我又想,把每个边枚举一 ...
分类:
其他好文 时间:
2019-08-13 10:30:28
阅读次数:
112