有关概念: 最近公共祖先(LCA,Lowest Common Ancestors):对于有根树T的两个结点u、v,最近公共祖先表示u和v的深度最大的共同祖先。 树上倍增是求LCA的在线算法(对于每一个询问输入后即计算) 思路: fa[i][j]表示编号为j的结点从下往上的第2i个祖先 即fa[0][ ...
分类:
其他好文 时间:
2016-10-17 06:54:48
阅读次数:
185
第一讲作业 管枫 昨天 星期六 22:51 数学分析教程,常庚哲,史济怀 p142:2,3,7,8; p143:3,4,6; p148:2,3,6; p176:8,11; p210:4,5; p211:6 在下述网站中找到今天所讲内容对应的章节并选择阅读, http://staff.ustc.edu ...
分类:
编程语言 时间:
2016-10-16 16:17:41
阅读次数:
175
下面是difficulty 1的题 1003 Max Sum 最长递增子序列。非常经典,最棒的解法是在线算法O(n)的复杂度。 贴的呢,是用dp做的代码。 先是一个高亮的dp递推式,然后找到最大处,用k记录。即所求的子序列的结尾,之后倒推,用减法推出子序列的开头位置。 要注意的点就是各个变量的初始化 ...
分类:
其他好文 时间:
2016-07-30 18:16:39
阅读次数:
146
Connections between cities Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 8857 Accepted Submis ...
分类:
编程语言 时间:
2016-07-13 11:41:04
阅读次数:
257
对于这一类的问题有2中解决方法。第一种就是tarjan的离线算法,还有一中是基于ST算法的在线算法。复杂度都是O(n); 先介绍在线算法: 1) dfs: 对于图所示的树,我们从根节点1开始dfs,按照先序访问(不算完全的先序),那么它访问顺序就是1 -> 2 -> 4 -> 2 -> 5 -> 7 ...
分类:
编程语言 时间:
2016-07-13 10:28:51
阅读次数:
139
codevs 2370 小机房的树 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题目描述 Description codevs 2370 小机房的树 时间限制: 1 s codevs 2370 小机房的树 时间限制: 1 s 空间限制: 256000 KB ...
分类:
编程语言 时间:
2016-05-18 00:02:32
阅读次数:
392
POJ - 1330 Nearest Common Ancestors(dfs+ST在线算法|LCA倍增法) d.输入树中的节点数N,输入树中的N-1条边。最后输入2个点,输出它们的最近公共祖先。 s.裸的最近公共祖先。 c.dfs+ST在线算法: /* LCA(POJ 1330) 在线算法 DFS ...
分类:
其他好文 时间:
2016-04-08 11:49:46
阅读次数:
191
1. 离线算法 http://hihocoder.com/problemset/problem/1067 并查集 2. 在线算法 http://hihocoder.com/problemset/problem/1069 最近公共祖先无非就是两点连通路径上高度最小的点 求每个结点所在层数,先序遍历树记 ...
分类:
其他好文 时间:
2016-04-07 20:41:10
阅读次数:
231
Network Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 847 Accepted Submission(s): 347 Problem D ...
分类:
编程语言 时间:
2016-04-05 22:59:08
阅读次数:
275
题目链接:传送门 在线算法: #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxn = 40010; struct nod{ ...
分类:
其他好文 时间:
2016-04-04 10:24:11
阅读次数:
261