动态树分治,用三个set分别维护每个重心到每一个子树的距离种类、每个重心所有子树的最大值和次大值、全局答案的最大值。复杂度O(nlogn^2) 代码 ...
分类:
其他好文 时间:
2016-08-01 01:40:23
阅读次数:
255
和倍增法求lca差不多,维护每个点往上跳2^i步能到达的点,以及之间的边的最大值和次大值,先求出最小生成树,对于每个非树边枚举其端点在树上的路径的最大值,如果最大值和非树边权值一样则找次大值,然后维护答案即可。 代码 ...
分类:
其他好文 时间:
2016-05-19 21:02:43
阅读次数:
131
题目中让我们来求输入数据的最大值和次大值。最开始我是想在数组中直接对其进行排序,然后输出数组的第一个和第二个数。但是,我没有考虑到重复数据的问题,所以我进行了一些改进,想将最大值找出来以后保存入另一个数组,再将最大值与剩下的数进行比较,第一个小于它的数就是次大值。 这个问题解决以后,我发现,输入多组 ...
分类:
其他好文 时间:
2016-04-05 00:09:19
阅读次数:
216
一个求最大值和次大值的问题。在更新的时候将两个子区间的最大次大值都算进去,排个序再装进去即可。#include#include#include#define maxn 800005using namespace std;struct tree{int left,right;int value1,va...
分类:
其他好文 时间:
2016-01-24 22:29:17
阅读次数:
267
#include #include /* 求数组的最大值和次大值。*/int main() { int n; while (printf("Please input n:\n"),fflush(stdin), scanf("%d", &n) != EOF){ if (n numbers[1]){.....
分类:
编程语言 时间:
2016-01-07 08:52:18
阅读次数:
139
题目大意:求树中每个点到所有叶子节点的距离的最大值是多少。思路: 这个题用两边dfs就可以,一遍是求当前点到子树那个方向上的最大值和次大值,另外一遍是父亲方向上的最大值。之所以要求子树方向上的次大值,是因为如果求当前点v的最长的距离的时候,子树里面的显而易见可以求出来,但是父亲方向上的就不确定了,如...
分类:
其他好文 时间:
2015-08-31 21:07:33
阅读次数:
143
很开心,这是今天的第三篇文章啦!下午健身也感觉非常过瘾,托付宿舍妹子从日本代购的护肤品也到了。耳边漂浮着Hebe田馥甄的《魔鬼中的天使》文艺的声线,一切都好棒,O(∩_∩)O哈哈~。爱生活,爱音乐,爱运动,额,当然还有要爱学习啦!加油↖(^ω^)↗额,扯远了。第三篇是关于寻找数组中的最大值和最小值。第一次看到这个题目的时候,楼主稍微鄙视了一下,因为觉得这个题目有什么好做的。但是楼主还是看了看《编程之...
分类:
编程语言 时间:
2015-04-10 11:33:34
阅读次数:
168
数组是最基本的数据结构,关于数组的面试题也屡见不鲜,本文罗列了一些常见的面试题,仅供参考,如果您有更好的题目或者想法,欢迎留言讨论。目前有以下18道题目,如果有好的题目,随时更新。
数组求和求数组的最大值和最小值求数组的最大值和次大值求数组中出现次数超过一半的元素求数组中元素的最短距离求两个有序数组的共同元素求三个数组的共同元素找出数组中唯一的重复元素找出出现奇数次的元素求数组中满足给定和的...
分类:
编程语言 时间:
2015-01-06 18:05:00
阅读次数:
230
题目大意:
求出每一个结点距离叶子节点的最大距离。
思路分析:
假设1为树的根。
通过一遍dfs 可以求出每个节点到儿子节点上的叶子节点的最远距离。
然后我们要做的就是如果更新答案。
问题就是如果我们开始求的最大值本来就是一个儿子更新的,如果再深搜的话又会造成重复更新。
所以就记录两个值,最大值和次大值。
然后不断更新这两个值。
#include
#includ...
分类:
其他好文 时间:
2014-08-18 18:44:32
阅读次数:
225
#include#include#include#includeusing namespace std;#define N 220000#define inf 0x3ffffffffffffffLLtypedef long long ll;int v[N],e[N],ne[N],nn,w[N];vo...
分类:
其他好文 时间:
2014-06-25 11:04:35
阅读次数:
268