
重连通/割边/割点
文章平均质量分 84
lin375691011
呵呵
展开
-
POJ 2942 Knights of the Round Table
题目大意:有N个骑士,他们要开圆桌会议,也就是要坐成一个圈,相互憎恨的两个骑士是不能坐在相邻位置的,那样他们就会打起来。给出所有的憎恨关系。如果有人不可能开会,例如他可能憎恨所有人,就不能再去开会了。求这样人的个数。解题思路:1、首先根据题目给出的憎恨关系建图,然后求补图,这个图表示哪个骑士可以和哪个骑士坐在一起。2、在图中求出圈,也就是双联通分量,这可以用到Tar原创 2014-01-15 20:46:53 · 5635 阅读 · 0 评论 -
POJ 3352 Road Construction
题目大意:给定图G,求最少加多少边可以成为双连通图。解题思路:1、求图G中的双连通分量。2、每一个双联通分量缩成一个点,形成一棵树。3、计算出叶子节点的个数,需要加的边的数量就是(叶子节点个数+1)/2。解题中要注意的:用Tarjan算法求双连通分量的时候,并不是low数组中值不同的就不再同一个双联通分量。很多大牛的博客都只借助low数组中的原创 2014-01-25 21:18:33 · 6771 阅读 · 2 评论 -
POJ 2186 Popular Cows
首先声明:这个题目的后台数据很水,有很多数据都没有,一些错误的方法也可能会AC。题目大意:有n只牛,牛A认为牛B很牛,牛B认为牛C很牛。给你M个关系(谁认为谁牛),求大家都认为它很牛的牛有几只。PS:如果牛A认为牛B很牛,牛B认为牛C很牛。那么我们就认为牛A认为牛C很牛。(我写的题目大意是不是中文八级阅读题???(*^__^*) 嘻嘻)解题思路:1、原创 2014-01-28 21:09:09 · 9792 阅读 · 1 评论 -
POJ 3694 Network
题目大意:给一个连通图G,问加入某一条边后图中还有多少割边。解题思路:1、用Tarjan算法求出所有的割边和每一个点的父节点,并记录。记录每一个节点的父节点可以形成一棵深搜树。2、通过求LCA(最近公共祖先)的过程中对于深搜树的处理,记录经过的割边的数量并减去。注意事项:1、因为数据比较大,所以每加一次边用Tarjan求一次割边数量是不现实的,并且是不符合题原创 2014-01-28 11:25:57 · 5870 阅读 · 0 评论 -
POJ 3114 Countries in War
题目大意:给出一个带权有向图,将其中的强连通分量缩成点,再求最短路。若有输出最小值,若没有输出:“Nao e possivel entregar a carta” (“It’s impossible to deliver the letter”).解题思路:1、建图,然后Tarjan算法缩点。2、求最短路然后输出。下面是代码:#include #inclu原创 2014-02-02 12:59:17 · 6663 阅读 · 0 评论 -
POJ 3592 Instantaneous Transference
题目大意: 给出一个n*m的格子地图,每一格上面是0~9,“*”或“#”。如果格子上是数字代表这个格子上有当前数量的矿石。如果是“*” 代表着当前格子是一个传送阵可以传送到指定的地方。如果是“#”代表当前格子不可达。 现在有一个矿车在坐标(0,0),也就是左上角。他只能向右和下行驶。当遇到传送阵时可以被传送到指定的位置。当他遇到数字时就可以得到那些数量的矿石,那原创 2014-02-01 22:59:09 · 4923 阅读 · 0 评论