3712: [PA2014]Fiolki Description 化学家吉丽想要配置一种神奇的药水来拯救世界。吉丽有n种不同的液体物质,和n个药瓶(均从1到n编号)。初始时,第i个瓶内装着g[i]克的第i种物质。吉丽需要执行一定的步骤来配置药水,第i个步骤是将第a[i]个瓶子内的所有液体倒入第b[i ...
分类:
其他好文 时间:
2016-05-27 23:35:47
阅读次数:
526
点击打开链接
题意:给一个树和树上的分支组成的图,问我当且仅当删除一条树上的边,最少再删除几条边使得图不连通
思路:我写了两个做法,第一种是不加优化的十分暴力的LCA,也就是裸的,因为这道题目的数据说很水,这样的复杂度也可以,O(n*m),n为20000,m为200000,明明是超时好不好,这个做法也简单易懂,在这个树上,我们加了一条边u->v,那么u与v的最近公共祖先为fa,那么u->f...
分类:
其他好文 时间:
2016-05-27 12:06:14
阅读次数:
248
首先剔除所有从$R$不可到达的点,然后用Lengauer-Tarjan算法建立出以$R$为起点的Dominator Tree。 那么对于每个询问,求出那些点的父亲的LCA,那么答案就是LCA到根路径上点权的最小值。 时间复杂度$O(t\log n)$。 ...
分类:
其他好文 时间:
2016-05-25 14:58:25
阅读次数:
180
题目链接:http://poj.org/problem?id=3694 题意:给一张图,每次加一条边,问割边数量。 tarjan先找出所有割边,并且记录每个点的父亲和来自于哪一条边,然后询问的时候从两个点向上找lca,沿途更新割边数量和割边状态即可。 AC代码 第一次TLE了,因为窝把erase的复 ...
分类:
Web程序 时间:
2016-05-23 07:54:53
阅读次数:
332
题目链接:http://poj.org/problem?id=1330 题意就是求一组最近公共祖先,昨晚学了离线tarjan,今天来实现一下。 个人感觉tarjan算法是利用了dfs序和节点深度的关系,大致的意思:dfs如果不递归到递归基,那么dfs就会越递归越深,这个时候深度也是相应增加的,所以这 ...
分类:
其他好文 时间:
2016-05-20 13:17:58
阅读次数:
197
描述 http://www.spoj.com/problems/COT/ 给出一棵n个节点的树,树上每一个节点有权值.m次询问,求书上u,v路径中第k小的权值. 分析 POJ_2104_Kth(主席树) 现在是把原来的问题搬到树上去了.首先我们肯定要求lca,新学了Tarjan的离线算法. 每一个点 ...
分类:
其他好文 时间:
2016-05-20 13:12:46
阅读次数:
290
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2586 题意:给出一棵n个节点的无根树,每条边有各自的权值。给出m个查询,对于每条查询返回节点u到v的最短路径的权值和,按查询顺序输出结果。 数据范围:n [2, 40000], m[1, 200] 思路 ...
分类:
编程语言 时间:
2016-05-20 00:47:25
阅读次数:
214
和倍增法求lca差不多,维护每个点往上跳2^i步能到达的点,以及之间的边的最大值和次大值,先求出最小生成树,对于每个非树边枚举其端点在树上的路径的最大值,如果最大值和非树边权值一样则找次大值,然后维护答案即可。 代码 ...
分类:
其他好文 时间:
2016-05-19 21:02:43
阅读次数:
131
并查集 并查集(Union-Find Sets)是一种非常精巧而实用的数据结构,它主要用于处理一些不相交集合的合并问题。一些常见的用途有求连通子图、求最小生成树的 Kruskal 算法和求最近公共祖先(Least Common Ancestors, LCA)等。 并查集的实现原理也比较简单,就是使用 ...
分类:
其他好文 时间:
2016-05-18 21:45:48
阅读次数:
127