2013年7月25日

poj1470 LCA+RMQ

摘要: 主要是注意输入,我用的是RMQ算法求LCA,在询问特多时比tarjan的时间要少。#include#include#include#includeusing namespace std;const int N=1008;int vis[N],val[N],p[N];int first[N*2],no... 阅读全文

posted @ 2013-07-25 20:41 黎昊明 阅读(237) 评论(0) 推荐(0) 编辑

2013年7月24日

hdu 3078 Network RMQ+LCA

摘要: 题目的意思是给你一个案例,有n个顶点,和q个询问。再下来是n个顶点的权值,再是n-1条边。再下来是q行,当k=0时,就改a顶点的权值为b。当k>0时,为询问a到b两点距离的第k大的顶点。当两点的距离小于k时,就不会存在第k大的顶点了很显然是LCA,我以前使用tarjan算法,超时了。后来搜大神的代码... 阅读全文

posted @ 2013-07-24 22:14 黎昊明 阅读(269) 评论(0) 推荐(0) 编辑

hdu 2874 Connections between cities (离线LCA)

摘要: 给n顶点和m条边求任意两点的最短距离,只要找到他们的最近公共祖先就可以求出他们的最短距离,先处理后询问,只是很明显的离线LCA可以用tarjan离线算法。昨天做了一道类似的,此题和poj1330很接近,几乎是它的一个扩展。如果做个那题此题可迎刃而解。#include#includeusing nam... 阅读全文

posted @ 2013-07-24 10:59 黎昊明 阅读(158) 评论(0) 推荐(0) 编辑

2013年7月23日

hdu 4607 Park Visit

摘要: 本题的意思是说走k个顶点需要的最短路径,本题给你一颗树,我们只需DFS这颗树的最大深度R。如果k小于这个深度就是k-1,如果大于k,就是R-1+(k-r)*2;因为其他的边要走两次。#include #include #include #include #include #include using... 阅读全文

posted @ 2013-07-23 21:37 黎昊明 阅读(165) 评论(0) 推荐(0) 编辑

POJ2694 Network 双连通+LCA

摘要: 本题的意思是给你一个图,再依次的加边问你还有几条桥[构造双连通图]一个有桥的连通图,如何把它通过加边变成边双连通图?方法为首先求出所有的桥,然后删除这些桥边,剩下的每个连通块都是一个双连通子图。把每个双连通子图收缩为一个顶点,再把桥边加回来,最后的这个图一定是一棵树,边连通度为1。统计出树中度为1的... 阅读全文

posted @ 2013-07-23 09:41 黎昊明 阅读(201) 评论(0) 推荐(0) 编辑

2013年7月22日

POJ1330 Nearest Common Ancestors

摘要: 今天第一次学习(LCA)最近公共祖先算法,就做了这个题目,本题的意思就是给你一颗树,两个节点的最短路径上深度最小的节点,说白了就是LCA如有不懂得可以点击http://www.cnblogs.com/ka200812/archive/2011/08/02/2124984.html#include#i... 阅读全文

posted @ 2013-07-22 21:00 黎昊明 阅读(218) 评论(0) 推荐(0) 编辑

2013年7月18日

hdu2647

摘要: 题目来自本题就一简单的拓扑,不多说,贴代码了。想了解更多有关拓扑排序的请http://tobyaa.blog.163.com/blog/static/30248591201261810257856/#include#includeusing namespace std;#define N 10009... 阅读全文

posted @ 2013-07-18 20:31 黎昊明 阅读(233) 评论(0) 推荐(0) 编辑

导航