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....