摘要:
//朴素的最小生成树:prim算法实现#include <stdio.h>#include <string.h>#include <math.h>#define arraysize 1001typedef struct node{int x;int y;}node;node nodes[arraysize];double dis[arraysize][array... 阅读全文
摘要:
//重点理解:关键抽象成最小生成树问题及二维字符串数组的使用#include <stdio.h>#include <string.h>#define arraysize 2001char truck[arraysize][8];//定义字符串二维数组int dis[arraysize][arraysize];bool final[arraysize];int d[array... 阅读全文
摘要:
#include <stdio.h>#include <math.h>#include <algorithm>using namespace std;#define arraysize 751#define array 1001//已修建的路int xi[arraysize];int yi[arraysize];int final[arraysize];int ... 阅读全文
摘要:
//最小生成树:Prim#include <stdio.h>#include <string.h>#define arraysize 28int dis[arraysize][arraysize];bool final[arraysize];int d[arraysize];int n;int maxData = 0x7fffffff;void Prim(){int i;i... 阅读全文
摘要:
//最小生成树:Prim算法实现,不要使用Kruskal算法,否则会出现超时#include <stdio.h>#include <math.h>#include <string.h>#define nodesize 1001typedef struct node{int x;int y;}node;//对于nodes和record的含义不同,nodes指的是点... 阅读全文
摘要:
//解题思路:最小生成树Prim算法实现,注意将已修建的路的距离置为0#include <stdio.h>#include <string.h>#define arraysize 101int maxData = 0x7fffffff;int dis[arraysize][arraysize];bool final[arraysize];int d[arraysize];i... 阅读全文
摘要:
//题目大意:判断最小生成树是否唯一//解题思路:求出最小的次小生成树,判断最小的次小生成树是否与最小生成树的权值和一样,如果一样,则唯一,否则不唯一//求次小生成树的算法:(1)有个比较直观的方法。依次把MST上的边删掉,然后再做MST。这样的做就是编码简洁,有模块可以重用。效率O(n*O(MST))(2)既然每替换出去一条边,都将使代价变大。所以求次小生成树,只需要替换出去一条边即可。枚举不在... 阅读全文
摘要:
//最小生成树求生成树中的最大边,使用Kruskal算法//总结:re错误为开的数组太小#include <stdio.h>#include <algorithm>using namespace std;#define nodesize 2001#define edgesize 10001typedef struct node{int v;//起点int u;//终点__i... 阅读全文
摘要:
//题目大意:最大生成树//解题思路:在排序的时候按从大到小排即可,其余与Kruskal算法一样//注意:如果使用Prime算法注意考虑重边的情况,Kruskal算法不必考虑重边的情况(因为是将边进行排序,当一条边已经加入的时候,不可能加入重边)#include <stdio.h>#include <algorithm>using namespace std;#define... 阅读全文
摘要:
//最小生成树:Kruskal算法#include <stdio.h>#include <algorithm>using namespace std;#define arraysize 15001#define nodenum 1001typedef struct node{int start;//起点int end;//终点int w;//费用};node edges[a... 阅读全文