題目描述
學習完最小生成樹後,老師只給出幾道模板題,為了盡快提公升自己的程式設計能力,小c同學給自己出了這樣一道題:最平衡生成樹。
最平衡生成樹是這樣定義的,乙個有 n 個結點的連通圖的生成樹包含原圖中的所有n個結點,並且最長邊與最短邊的差值最小。
現在給你乙個有n個結點的圖,求最平衡生成樹中最長邊與最短邊的差值。
輸入輸入第一行為n和m兩個正整數,分別表示圖的結點數和邊數。
以下m行每行包含三個數a,b,w,分別表示每條邊的兩個端點和邊的權值。
輸出輸出滿足題目要求的最小值,如果找不到最平衡生成樹,則輸出-1。
樣例輸入
4 5樣例輸出1 2 3
1 3 5
1 4 6
2 4 6
3 4 7
1【資料範圍】
對於100%的資料,2<=n<=100,0<=m<=n(n-1)/2,w<=10000。
【樣例輸入2】
3 0
【樣例輸出2】
-1 先sort排序後挨個列舉,每次選n-1條邊構成最小生成樹,用乙個變數記錄最優值,最後輸出即可。
#include#define n 105using namespace std;
int d[n],n,m,ans=-1;
struct lhy
c[n*(n-1)/2];
int find(int t)
bool cmp(lhy a,lhy b)}}
printf("%d",ans);
return 0;
}
最平衡生成樹
題目描述 學習完最小生成樹後,老師只給出幾道模板題,為了盡快提公升自己的程式設計能力,小c同學給自己出了這樣一道題 最平衡生成樹。最平衡生成樹是這樣定義的,乙個有 n 個結點的連通圖的生成樹包含原圖中的所有n個結點,並且最長邊與最短邊的差值最小。現在給你乙個有n個結點的圖,求最平衡生成樹中最長邊與最...
最簡單的平衡樹(紅 黑樹)的實現
在二叉搜尋樹 bst 的基礎上,要實現一顆平衡樹,可以使用2 3樹的方式,2 3樹的直接實現,相對比較複雜 因此演算法的研究者們提出了紅 黑樹的實現方式。package com.test public class redblacktree,value private boolean isred no...
史上最詳盡的平衡樹 splay 講解與模板
首先宣告 萬分感謝gty大哥的幫助!這年頭能找到簡單易懂的陣列版平衡樹模板只能靠學長了!變數宣告 f i 表示i的父結點,ch i 0 表示i的左兒子,ch i 1 表示i的右兒子,key i 表示i的關鍵字 即結點i代表的那個數字 cnt i 表示i結點的關鍵字出現的次數 相當於權值 size i...