「树的直径」BFS方法证明】的更多相关文章

选定任意一个点u,从u开始BFS求出距离u最大的点s,再从s点出发BFS到距离s最大的点t,则dis(s,t)即为树的直径 证明 其实只要找到了树的直径的一个端点,再BFS找到最远点就一定是直径的另一个端点,这一点毋庸置疑.所以解法的后半部分一定是正确的,只需要证明第一次BFS找到的最远点k就是其中一个端点s. (一):u在直径上:反证法:若点k不是直径的端点,这意味着dis(u,k)+dis(u,t) < dis(u,s)+dis(u,t),两边同时减去dis(u,t),得dis(u,k) <…
>传送门< 题意:求树的直径 思路:就是道模板题,两遍dfs就求出来了 Code #include <cstdio> #include <iostream> #include <algorithm> #include <vector> using namespace std; typedef pair<int, int> P; const int MAX_N = 1000005; vector<P> G[MAX_N]; i…
Cow Marathon Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 7536   Accepted: 3559 Case Time Limit: 1000MS Description After hearing about the epidemic of obesity in the USA, Farmer John wants his cows to get more exercise, so he has com…
T1 冒泡排序 题目描述 clj 想起当年自己刚学冒泡排序时的经历,不禁思绪万千 当年,clj 的冒泡排序(伪)代码是这样的: flag=false while (not flag): flag=true for i = 0 to N-2: if A[i+1] < A[i]: swap A[i], A[i+1] flag=false 现在的 clj 想知道冒泡排序究竟有多慢,所以在(伪)代码的第三行下面加入了这么一句: printf("LJS NB\n"); 但是随着需要排序的…
LOJ 2144 84pts 首先\(op2\)很简单.直接并查集一搞就好了(话说我现在什么东西都要写个并查集有点...) 然后\(op0\)我不会,就直接\(O(n^2)\)枚举一下\(P\)这个人的路径,然后用\(op1\)的操作求答案. 所以只是看\(op1\)的复杂度决定了分数(逃. 我第一开始写的是\(O(n^3)\)的鬼暴力,然后拿了\(60pts\)跑路了... 现在是\(O(n)\)的. 首先我们把\(P\)的路径的一端挂到根上,这样做的好处就是我们不用考虑\(P\)父亲所在的新…
又死了......T1 Merchant 因为每个集合都可以写成一次函数的形式,所以假设是单调升的函数,那么随着t越大就越佳 而单调减的函数,随着t的增大结果越小,所以不是单调的??? 但是我们的单调只需凭借t时刻的sum值是否大于S即可 如果某个单减的集合符合情况,那么他在t==0时就符合情况 如果不符合,那么他就不会作出贡献 所以可以二分 T2 Equation 一开始以为是高斯消元??? 当然不是..... 把每个xi均用x1表示,那么我们发现,对于深度奇偶不同的点,他的表示方式是不同的,…
题面 Labyrinth Time Limit: 2000MS Memory Limit: 32768K Total Submissions: 4997 Accepted: 1861 Description The northern part of the Pyramid contains a very large and complicated labyrinth. The labyrinth is divided into square blocks, each of them either…
树的直径 我们先来认识一下树的直径. 树是连通无环图,树上任意两点之间的路径是唯一的.定义树上任意两点\(u, v\)的距离为\(u\)到\(v\)路径上边权的和.树的直径\(MN\)为树上最长路径,即点\(M\)和\(N\)是树上距离最远的两个点,这条路径亦称为树的最长链. 那么,我们考虑一下如何求解树的直径. 方法一:\(DP\)求解树的直径. 设\(d_x\)表示从节点\(x\)出发走向以\(x\)为根的子树,能够达到的最远距离. 那么 \[d_x=\max_{y\in son(x)}\{…
题解: 求树的直径. 转一篇博客:http://www.cnblogs.com/hanyulcf/archive/2010/10/23/tree_radius.html 树的直径是指树的最长简单路.求法: 两遍BFS :先任选一个起点BFS找到最长路的终点,再从终点进行BFS,则第二次BFS找到的最长路即为树的直径:              原理: 设起点为u,第一次BFS找到的终点v一定是树的直径的一个端点              证明: 1) 如果u 是直径上的点,则v显然是直径的终点(…
今天读完了赤羽雄二的<零秒思考>,作者是一位在麦肯锡公司工作了 14 年的资深顾问.依照作者的说法,「零秒思考」指的是: 瞬间便能认清现状, 瞬间便能整理问题, 瞬间便能考虑出解决办法, 瞬间便能决定该如何行动. 没有犹豫的时间,也没有烦恼的时间. 这个概念确实诱人,不过通观全书,似乎作者更多是拿它作为一个噱头.倒是这本书中作者提到通向「零秒思考」的方法,的确是一种非常实用的笔记方法: A4 笔记术 「零秒思考」是个神话,不过这款笔记术你值得拥有. 为什么要写 A4 笔记? 做笔记,可以理清头…