题意: 一个树形图,有个二货商人,旅游时候还想着赚钱!从某个地方到另一个地方时,可以旅途中进一批货(应该人手不够,手里只能拿一批),然后在旅途中卖掉,求最大能赚多少钱。思路: 赤裸裸的LCA,ans(x,y)=max(up(x,lca),down(lca,y),maxp(lca,y)-min(l.....
分类:
其他好文 时间:
2014-08-29 22:32:08
阅读次数:
236
开篇 敬仰下 大师-tarjan 发明的这些算法太流弊了=-=使用这个lca_tarjan之前 可以先去学习下使用tarjan解决scc强连通问题我本来是去做到hdu-4912-发现做不来=-= 去网上搜了下 都说是神马lca的....那就去学下吧 而且很多也将这题当做入门题..lca分离线和在线 ...
分类:
其他好文 时间:
2014-08-29 15:53:38
阅读次数:
213
1.割点:若删掉某点后,原连通图分裂为多个子图,则称该点为割点。
2.割点集合:在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。
3.点连通度:最小割点集合中的顶点数。
4.割边(桥):删掉它之后,图必然会分裂为两个或两个以上的子图。
5.割边集合:如果有一个边集合,删除这个边集合以后,...
分类:
其他好文 时间:
2014-08-26 21:30:06
阅读次数:
612
题目来源:URAL 1752. Tree 2
题意:求一个点v与它距离为d的任意一个点 没有输出0
思路:开始想倍增法 但是倍增法只能往他的祖先去 后来百度发现了树的直径 想了想 发现可以建2棵树 每一棵树的根是树的直径的2个端点
这样保证了每个点和他距离最远的点就是其中一个根 因为一个点到树的直径的端点的距离是最远的 最后就是LCA倍增了
#include
#include
#in...
分类:
其他好文 时间:
2014-08-24 20:53:33
阅读次数:
244
当时刚学LCA-tarjan不久,就比赛有这个题,但没想到还是没做出来。。一开始以为是DP来着,没想到是贪心,想想也对,从树的最下层开始,每次遇到询问的点,就找到他们的LCA(路径里面必经LCA),然后把该LCA下的子树连同自己全部染色为不可用了。#include #include #include...
分类:
其他好文 时间:
2014-08-24 19:13:02
阅读次数:
206
http://poj.org/problem?id=1330题意:给出一个图,求两个点的最近公共祖先。sl :水题,贴个模板试试代码。本来是再敲HDU4757的中间发现要用LCA, 操蛋只好用这个题目试试自己写的对不对。 下面是个倍增的写法,挺实用的。好了,继续。。。1#include2#inclu...
分类:
其他好文 时间:
2014-08-23 17:33:41
阅读次数:
233
囧啊囧。lca的求法太多了倍增,tarjan,st,lct,hld....后边三个我就不写了,其中st我没写过,估计用不上,在线用倍增,离线用tarjan就行了。嗯。第一种,倍增(nlogn,在线):倍增的思想用在树上,即可以求出lca。我们维护二维数组,f[i][j],表示i号点的第2^j号祖先,...
分类:
其他好文 时间:
2014-08-21 22:42:24
阅读次数:
278
题目来源:UVa 11354 Bond
题意:n个点m条边的图 q次询问 找到一条从s到t的一条边 使所有边的最大危险系数最小
思路:使最大的危险系数尽量小 答案是最小生成树上的边 然后用LCA倍增法记录s和t到他们最近公共祖先的最大值
#include
#include
#include
using namespace std;
const int maxn = 50010;
con...
分类:
其他好文 时间:
2014-08-21 21:15:54
阅读次数:
171
题意:给出n个字符串,问每个字符串有多少个子串至少出现在z...
分类:
其他好文 时间:
2014-08-17 09:11:42
阅读次数:
224
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4822Problem DescriptionThree countries, Red, Yellow, and Blue are in war. The map of battlefield is a t...
分类:
其他好文 时间:
2014-08-16 16:19:50
阅读次数:
275