摘要: 裸的FLOYD 求最小环。 1 #include 2 #include 3 using namespace std; 4 const int inf=100000000; 5 const int MAXN=105; 6 int n,m,minc; 7 int map[MAXN][MAXN],di... 阅读全文
posted @ 2014-07-18 16:51 chenjunjie1994 阅读(145) 评论(0) 推荐(0) 编辑
摘要: floyd求最小环。注意,该算法是用于无向图的。若为有向图,直接用原始的floyd求得点对间的距离,再枚举点对即可。(个人直觉是这样,没试过)改进的floyd求无向图最小环:可以用以下代码:POJ 1734 1 #include 2 #include 3 #include 4 #include... 阅读全文
posted @ 2014-07-18 16:33 chenjunjie1994 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 次小生成树。求出两点间最短路径的最大权值,再把要加入的边与之比较即可。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 const int MAXN=1010; 8 const int MAXM=... 阅读全文
posted @ 2014-07-18 10:16 chenjunjie1994 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 求一次最小成树,求一次小生成树,若相等,则不唯一。否则,唯一。 1 #include 2 #include 3 #include 4 #include 5 6 using namespace std; 7 const int MAXN=105; 8 const int inf=100000... 阅读全文
posted @ 2014-07-18 08:43 chenjunjie1994 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 这道题涉及次小生成树,有必要先弄明白次小生成树是怎么一回事。次小生成树,顾名知义。一个定理是,次小生成树可以由最小生成树交换一条边得到。这怎么证明,可以上网搜一下。但有必要提醒的是,交换过来的这样一条边,必须是未成使用过的(即不是最小生成树的边)。而且,交换走的边,必须是已存在的,而且是两点间最短路... 阅读全文
posted @ 2014-07-18 08:42 chenjunjie1994 阅读(164) 评论(0) 推荐(0) 编辑