最平衡生成樹

2022-05-26 07:00:11 字數 845 閱讀 3796

題目描述

學習完最小生成樹後,老師只給出幾道模板題,為了盡快提公升自己的程式設計能力,小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 105

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