摘要: 最近公共祖先问题~~题目大意:一个村子里有n个房子,这n个房子用n-1条路连接起来,接下了有m次询问,每次询问两个房子a,b之间的距离是多少。很明显的最近公共祖先问题,先建一棵树,然后求出每一点i到树根的距离dis[i],然后每次询问a,b之间的距离=dis[a]+dis[b]-2*dis[LCA(a,b)];LCA(a,b)即是a,b的最近公共祖先。。关于最近公共祖先,给大家推荐一个我学长的博客http://www.cnblogs.com/ylfdrib/archive/2010/11/03/1867901.html,里面讲的很不错!!直接贴一下代码:View Code 1 # includ 阅读全文
posted @ 2011-08-03 20:06 奋斗青春 阅读(3066) 评论(0) 推荐(0)
摘要: 哎,写了差不多两天了,终于A了。。双联通分量+并查集。。题目大意:给一个连通的无向图,问每加进来一条边,图中还有多少桥!思路:刚开始想都没想,直接就写,每加进来一条边然后进行缩点,写到每加一条边然后重新建图的时候打住了,每加一条边要进行缩点,还要重新建图,太麻烦了,,搞了很久还是写出来了,交上去OLE了,搜了一下解题报告, 人家说这种方法会超时,然后果断不写了。。又看了一下discuss里面有人介绍到LCA最近公共祖先,又花了一上午时间把这个学学,之后再来做这道题,,发现方法不实用,我学的那个需要离线处理,也就是先把数据输入进去完,对于这道题,每加一条边都要进行缩点,那种离线方法根本无法解。。 阅读全文
posted @ 2011-08-03 16:13 奋斗青春 阅读(882) 评论(0) 推荐(0)