Fork me on GitHub
摘要: 一、“换边”算法用Kruskal求最小生成树,标记用过的边。求次小生成树时,依次枚举用过的边,将其去除后再求最小生成树,得出所有情况下的最小的生成树就是次小的生成树。可以证明:最小生成树与次小生成树之间仅有一条边不同。这样相当于运行m次Kruskal算法。复杂度O(m^2)示例代码:int Krus... 阅读全文
posted @ 2014-06-07 19:31 whatbeg 阅读(1669) 评论(0) 推荐(0) 编辑
摘要: 图G是欧拉图,即存在欧拉回路的条件::smile:1.图是联通的2.对于无向图,奇度数点个数为0。对于有向图,每个顶点出度等于入度。欧拉回路算法模板(链式前向星和DFS实现):int ans[N];int k = 0;int vis[2*M];void DFS(int now){ for(in... 阅读全文
posted @ 2014-06-07 10:46 whatbeg 阅读(733) 评论(0) 推荐(0) 编辑
摘要: 定理1:在一个具有n个顶点的无向连通图G中,如果任意两个顶点的度数之和大于n,则G具有Hamilton回路。此条件为充分条件定理2:设图G = ,是Hamilton图,则对于v的任意一个非空子集S,若以|S|表示S中元素数目,G-S表示G中删除了S中的点以及与这些点关联的边后得到的子图,则满足G-S... 阅读全文
posted @ 2014-06-07 09:46 whatbeg 阅读(3671) 评论(0) 推荐(0) 编辑