ACM唯一的最小生成樹C 實現

2021-08-26 10:31:48 字數 892 閱讀 4656

acm唯一的最小生成樹

description

求乙個非負權邊的無向連通圖的最小生成樹,如果這個無向圖存在兩個或兩個以上的最小生成樹,就輸出not unique,否則輸出最小生成樹的邊的權值和。

輸入:

第一行是乙個整數k,表示有多少個測試用例,以後每個測試用例佔m+1行。每個測試用例的第一行為兩個整數n,m(3<=n<=100),表示圖的頂點數和邊數,從第二行開始每行為三個整數i,j,w,表示從i到j頂點的權值。

輸出:

每行輸出乙個測試用例的結果。如果這個無向圖存在兩個或兩個以上的最小生成樹,就輸出not unique,否則輸出最小生成樹的邊的權值和。

sample input

23 3

1 2 1

2 3 2

3 1 3

4 41 2 2

2 3 2

3 4 2

4 1 2

sample output

3not unique

#include

using namespace std;

int a[110][110],b[110];

bool mark[110],flag;

int cases,n,m,i,j,k,minn,minsum,pre,next,x,y,z;

int main()

for(k=2;k<=n;k++){

minn=9999999;

for(i=1;i<=k;i++){

for(j=1;j<=n;j++){

if(!mark[j]) {

if(a[b[i]][j]

ACM唯一的最小生成樹C 實現

acm唯一的最小生成樹 description 求乙個非負權邊的無向連通圖的最小生成樹,如果這個無向圖存在兩個或兩個以上的最小生成樹,就輸出not unique,否則輸出最小生成樹的邊的權值和。輸入 第一行是乙個整數k,表示有多少個測試用例,以後每個測試用例佔m 1行。每個測試用例的第一行為兩個整數...

最小生成樹判斷唯一

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

C 實現最小生成樹

第一種 求最小生成樹,普里姆演算法 prim 先給定乙個初始點,然後找到離它最近的點,並加入找的點序列,將其對應的距離設為0 然後找其它頂點距離新的找到點集合最小的點,再加入找到的點序列 重複以上過程 public static void prim minitree graph g console....