15145641

随笔分类 -  图论

上一页 1 2
POJ 1523 SPF (去掉割点能形成联通块的个数)
摘要:思路:使用tarjan算法求出割点,在枚举去掉每一个割点所能形成的联通块的个数。 注意:后来我看了下别的代码,发现我的枚举割点的方式是比较蠢的方式,我们完全可以在tarjan过程中把答案求出来,引入一下讨论: 如果这个割点是根节点,在tarjan算法中搜到几个孩子结点(low[v] >= dfn[u 阅读全文
posted @ 2016-05-21 19:05 icode-xiaohu 阅读(475) 评论(0) 推荐(0)
POJ 1236 Network of Schools (tarjan算法+缩点)
摘要:思路:使用tarjan求强连通分量并进行缩点,判断所有入度为0的点,这个点就是必须要给予文件的点,分别计算出度,入度为零的点的个数,取二者的最大值就是把这个图变成强连通需要加的边数。 一个取值需要讨论,当这个图就是强连通图的时候,答案输出1和0. 个人经历:作为初学者这个题错了很多遍,学姐给我们讲的 阅读全文
posted @ 2016-05-20 20:33 icode-xiaohu 阅读(256) 评论(0) 推荐(0)
POJ 2186 Popular Cows tarjan缩点算法
摘要:题意:给出一个有向图代表牛和牛喜欢的关系,且喜欢关系具有传递性,求出能被所有牛喜欢的牛的总数(除了它自己以外的牛,或者它很自恋)。 思路:这个的难处在于这是一个有环的图,对此我们可以使用tarjan算法求出强连通分量,把强连通分量压缩成一个点,构成一个新的图,这个图一定是没有环的,如果有环就跟强连通 阅读全文
posted @ 2016-05-18 21:01 icode-xiaohu 阅读(899) 评论(0) 推荐(0)
ZOJ Problem - 2588 Burning Bridges tarjan算法求割边
摘要:题意:求无向图的割边。 思路:tarjan算法求割边,访问到一个点,如果这个点的low值比它的dfn值大,它就是割边,直接ans++(之所以可以直接ans++,是因为他与割点不同,每条边只访问了一遍)。 需要注意的就是此处有多重边,题目中要求输出确定的不能被删除的边,而多重边的保留不是可以确定的,所 阅读全文
posted @ 2016-05-18 19:32 icode-xiaohu 阅读(305) 评论(0) 推荐(0)
HDU 1269 迷宫城堡 tarjan算法求强连通分量
摘要:基础模板题,应用tarjan算法求有向图的强连通分量,tarjan在此处的实现方法为:使用栈储存已经访问过的点,当访问的点离开dfs的时候,判断这个点的low值是否等于它的出生日期dfn值,如果相等,那这个点就在一个强连通分量里面,此时从栈中向外取出元素,知道取出的元素与这个点的值相等时结束,我们所 阅读全文
posted @ 2016-05-18 19:00 icode-xiaohu 阅读(288) 评论(0) 推荐(0)
hrbustoj 1494(原题UVA 315 Network) 解题报告 tarjan求割点
摘要:主要思路:使用tarjan选取一个根节点建立一个棵搜索树,判断一个点是割点的充分必要条件是,对于一个节点u如果他的孩子节点v的low值大于等于u的出生日期dfn值,进行下一步判断,如果u是我们选的根节点,我们还需要判断一下他的孩子节点的个数是否大于一,如果大于一则他是割点,反之不是。如果u不是根节点 阅读全文
posted @ 2016-05-17 20:18 icode-xiaohu 阅读(287) 评论(0) 推荐(0)
HDU 1217 Arbitrage(Floyd的应用)
摘要:给出一些国家之间的汇率,看看能否从中发现某些肮脏的......朋友交易。 这是Floyd的应用,dp思想,每次都选取最大值,最后看看自己跟自己的.....交易是否大于一。。。。 阅读全文
posted @ 2016-05-10 20:00 icode-xiaohu 阅读(184) 评论(0) 推荐(0)
HDU 2444 The Accomodation of Students(二分图判定+最大匹配)
摘要:这是一个基础的二分图,题意比较好理解,给出n个人,其中有m对互不了解的人,先让我们判断能不能把这n对分成两部分,这就用到的二分图的判断方法了,二分图是没有由奇数条边构成环的图,这里用bfs染色法就可以判断,其次让我们求分在两部分的最大对数,这就是二分图的最大匹配问题,这里数据只有200,所以匈牙利算 阅读全文
posted @ 2016-05-10 19:33 icode-xiaohu 阅读(259) 评论(0) 推荐(0)

上一页 1 2