C 判斷最小生成樹是否唯一演算法

2021-08-25 22:17:20 字數 704 閱讀 9328

1、最小生成樹是否唯一演算法

給定一無向圖,判斷最小生成樹是否唯一。

2、思路

先求出最小生成樹,記錄結果,依次刪除樹中各邊,再求最小生成樹,看與最初結果是否相同,若相同則不唯一。

3、**實現

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

const int n = 109;

const int max = 100000000;

int d[n];

int g[n][n];

int fa[n];

pairv[n];

int prim(int n, int m, bool f)

}return ans;

}int main()

int ans = prim(n, m, 1);

for(int i=1;ig[v[i].first][v[i].second]

= g[v[i].second][v[i].first] = t;

}if(ans == -1)

printf("not unique!\n");

else

printf("%d\n",ans);

}return 0;

}

最小生成樹判斷唯一

題意 若最小生成樹唯一則輸出權值和,若不唯一輸出not not unique 運用prim演算法將最小生成樹求出,然後在依次列舉刪除最小生成樹中的每一條邊,判斷是否還能構成乙個新的最小生成樹,且權值和與初始的權值和相等,若能構成則不唯一 include include include using n...

CSU 1541 判斷最小生成樹是否唯一

include include include include includeusing namespace std define n 1000 int fa n vis n n int isok struct point point bool operator bool judge same in...

PKU1679判斷最小生成樹是否唯一Prime演算法

原題 本題是判斷最小生成樹是否唯一,可以根據先刪除最小生成樹裡面的邊然後新加入一條邊,然後判斷新生成的最小生成樹的權值和原來是否相同 這就要求要求原來最小生成樹里任意兩個點之間的最大值。include include include include include include include i...