【問題描述】
p 省剛經歷一場不小的**,所有城市之間的道路都損壞掉了,所以省長想請你將城市之間的道路重修一遍。
因為很多城市之間的地基都被**破壞導致不能修公路了,所以省長給定了你一些城市對,在這些城市對之間可以修公路,並且都有相應的**。而且因為施工隊伍有限,所以省長要求用盡量少的道路將所有的城市連通起來,這樣施工量就可以盡量少,道路可視為無向邊,且資料保證至少有一種連通的方案。不過,省長為了表示自己的公正無私,要求在滿足上述條件的情況下,選擇一種方案,使得該方案中最貴道路的**和最便宜道路的**的差值盡量小,即使這樣的方案會使總價提公升很多也沒關係。
那麼,請你盡快地安排一種合理的方案,滿足省長的要求。
【輸入格式】
第一行兩個數 n,m,表示城市的個數以及可以修的公路數;
第二行開始 m 行,每行三個數 a,b,c,表示 a,b 之間可以修一條價值 c 的無向
道路。【輸出格式】
乙個數表示該方案中最大邊減去最小邊的值,要求要盡量的小。
【樣例輸入】
5 10
1 2 9384
1 3 887
1 4 2778
1 5 6916
2 3 7794
2 4 8336
2 5 5387
3 4 493
3 5 6650
4 5 1422
【樣例輸出】
【樣例說明】
選第 4,5,6,9 條邊即可。
【資料說明】
30%資料滿足 n<=m<=20
100%資料滿足 n<=m<=5000,0solution
最小生成樹,最小瓶頸生成樹,sort
m^2+mlogm
將邊排序,列舉乙個下界(上界),做最小生成樹(不連通即可退出),記錄最大(小)邊
code
// - thu oct 6 08:17:54 2016
// this file is made by yjinpeng,created by xuyike's black technology automatically.
// i don't know what this program is.
#include #include #include #include #include #include #include #define mod 1000000007
#define inf 1e9
#define in inline
#define rg register
using namespace std;
typedef long long ll;
typedef long double lb;
const int maxn=5010;
const int maxm=100010;
inline int max(int &x,int &y)
inline int min(int &x,int &y)
struct edge{
int u,v,w;
bool operator<(edge a)const{return w
T4模板語法
t4,即4個t開頭的英文本母組合 text template transformation toolkit。t4文字模板,即一種自定義規則的 生成器。根據業務模型可生成任何形式的文字檔案或供程式呼叫的字串。模型以適合於應用程式域的形式包含資訊,並且可以在應用程式的生存期更改 template deb...
T4模板 入門
t4模板作為vs自帶的一套 生成器,功能有多強大我也不知道,最近查詢了一些資料學習一下,做個筆記 更詳細的資料參見 msdn 你必須懂的t4模板 深入淺出 t4模板是沒有顏色高亮提示的,我們可以安裝vs支援的外掛程式,我安裝的是 t4 editor,當然還有其他比如 visual t4等,t4模板分...
T4 陣列並集
用陣列來刻劃集合。編寫程式,功能如下 通過鍵盤,分別輸入兩個資料元素型別為正整數的集合a和 b,每個集合以負數輸入為結束條件 該負數不是集合的元素 在螢幕上輸出兩個集合的並的結果。例如輸入 a b 輸出 a並 b 方法1 先把兩個集合合併為乙個集合,然後在乙個集合裡查重 include define...