hoj 1863 最小生成樹

2021-05-27 10:28:56 字數 547 閱讀 2965

哎呀最小生成樹呀··哎呀mst啊··糾結了我快一星期=.=  。kruskal 和 prim想著都還行,但**實現起來,就是各種錯啊。。。

下面是kruskal的方法,比較有代表性意義,加上注釋~~

#include #include #include #include #include using namespace std;

int n,m,p,par[150];

struct vil

edge[150];

void input()

}int cmp(const void *a,const void *b)

int findset(int x)

return x;

}void kruskal()

for ( i = 0; i < n; i++ ) }

if (c==m-1) // m-1條邊的時候為滿足要求

else }

int main()

else

}return 0;

}

hdu 1863 最小生成樹

使用並查集,陣列不要太小 include stdio.h int set 200 int n,m typedef struct nodenode,pnode node road 200 void init int find int u return set u int join int u,int ...

hdu 1863(最小生成樹)

基礎的最小生成樹問題,不過 要特判條件不足的情況 include include define inf 1 30 int n,m,vis 110 low 110 int map 110 110 int init int prim if pos 1 return 1 代表這當前步驟缺少條件 int k...

HDU 1863 最小生成樹

這還是最小生成樹的模版題,以前都是用的kruskal做的,這次用prime做的,寫篇部落格記錄下。prime的複雜度為n 2 n為點的個數 與邊的個數無關,用於稠密圖,而kruskal的複雜度為mlgm m為邊的個數 與點的個數無關,主要用於稀疏圖。include include includeus...