1640 天氣晴朗的魔法

2021-08-09 08:49:16 字數 1641 閱讀 2683

1640 天氣晴朗的魔法

基準時間限制:1 秒 空間限制:131072 kb 分值: 20 

難度:3級演算法題

這樣陰沉的天氣持續下去,我們不免擔心起他的健康。
51nod魔法學校近日開展了主題為「天氣晴朗」的魔法交流活動。

n名魔法師按陣法站好,之後選取n - 1條魔法鏈將所有魔法師的魔力連線起來,形成乙個魔法陣。

魔法鏈是做法成功與否的關鍵。每一條魔法鏈都有乙個魔力值v,魔法最終的效果取決於陣中所有魔法鏈的魔力值的和。

由於逆天改命的魔法過於暴力,所以我們要求陣中的魔法鏈的魔力值最大值盡可能的小,與此同時,魔力值之和要盡可能的大。

現在給定魔法師人數n,魔法鏈數目m。求此魔法陣的最大效果。

input

兩個正整數n,m。(1 <= n <= 10^5, n <= m <= 2 * 10^5)

接下來m行,每一行有三個整數a, b, v。(1 <= a, b <= n, int_min <= v <= int_max)

保證輸入資料合法。

output

輸出乙個正整數r,表示符合條件的魔法陣的魔力值之和。
input示例

4 6

1 2 3

1 3 1

1 4 7

2 3 4

2 4 5

3 4 6

output示例

12

題目要求生成樹中最長的邊最小 這個可以二分卡過

但是 我們知道 最小生成樹中的最大邊一定是所有生成樹中 最大邊最小的一條

所以我們可以先求最小生成樹 找到最大邊 然後找比這個最大邊小的邊建一顆最大生成樹

求權值和 即可

1 #include 2 #include 3 #include 4

5const

int maxn=200010

;6 typedef long

long

ll;7

8int

n,m,mx,tot;910

ll sum;

1112

intfa[maxn];

1314

struct

node

20};

21node edge[maxn];

2223 inline void read(int&x)

2930 inline int find(int

x) 34

35int

hh()

49if(tot==n-1) break;50

}51for(int i=1;i<=n;++i) fa[i]=i;

52 tot=0;53

for(int i=m;i;--i)

62if(tot==n-1) goto

end;63}

64}65end:

66 printf("

%lld\n

",sum);

67return0;

68}6970

int sb=hh();

71int main(int argc,char**argv)

**

1640 天氣晴朗的魔法

51nod魔法學校近日開展了主題為 天氣晴朗 的魔法交流活動。n名魔法師按陣法站好,之後選取n 1條魔法鏈將所有魔法師的魔力連線起來,形成乙個魔法陣。魔法鏈是做法成功與否的關鍵。每一條魔法鏈都有乙個魔力值v,魔法最終的效果取決於陣中所有魔法鏈的魔力值的和。由於逆天改命的魔法過於暴力,所以我們要求陣中...

nod 1640 天氣晴朗的魔法

這樣陰沉的天氣持續下去,我們不免擔心起他的健康。51nod魔法學校近日開展了主題為 天氣晴朗 的魔法交流活動。n名魔法師按陣法站好,之後選取n 1條魔法鏈將所有魔法師的魔力連線起來,形成乙個魔法陣。魔法鏈是做法成功與否的關鍵。每一條魔法鏈都有乙個魔力值v,魔法最終的效果取決於陣中所有魔法鏈的魔力值的...

1640 天氣晴朗的魔法(krustal演算法)

1640 天氣晴朗的魔法 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 這樣陰沉的天氣持續下去,我們不免擔心起他的健康。51nod魔法學校近日開展了主題為 天氣晴朗 的魔法交流活動。n名魔法師按陣法站好,之後選取n 1條魔法鏈將所有魔法師的魔力連線起來,形成乙個...