坐井观天

In the name of dream

导航

随笔分类 -  生成树问题

ACM/ICPC下图论里的生成树问题
摘要:题目链接:http://poj.org/problem?id=3522题目大意: 给定一个简单图,n个点,m条边( 1<=n<=100,0 ≤m≤n(n− 1)/2),要求一颗生成树,使得其最大边与最小边的差值是所有生成树中最小的,输出最小的那个差值。分析: 类似于kruskal算法求最小生成树,将所有边按权值大小排升序,e1,e2,e3,...em。 枚举每条边ei,对ei,ei+1,ei+2,ei+3...进行求生成树,不断更新差值得到最优值,具体见代码,复杂度不大会算。注意: 开始我认为自己是水过的,因为我看到n是100的最大值,然后考虑到边是10000的最大值,便有了100 阅读全文

posted @ 2012-04-20 11:39 一毛_ 阅读(340) 评论(0) 推荐(0)

摘要:题目链接:http://poj.org/problem?id=1679题目大意: 给定一个n个点,m条边的无向图,(1<=n<=100,1<=m<=10000,因为保证没有重边),问这个图的最小生成树(MST)是否唯一。分析: 我的做法是第一次先用Prim算法做一次MST得到最终的权值total,并且标记所用的边(共n-1条),然后单独分别地枚举第一次做Prim时标记的边,对于枚举到的边,在原图里删除之,做一次MST看权值和第一次的total是否相等,如果相等说明MST不唯一,直到枚举完所有标记的边后还是没有判断到不唯一那么说明是唯一的,具体见代码,我觉得我的代码还是写 阅读全文

posted @ 2012-04-19 13:40 一毛_ 阅读(308) 评论(0) 推荐(0)