トピックリンク:codeforces -最小直径ツリー
私たちは、重量平均分子量は、葉の端に近いことができます置きます。なぜそれが正しいのですか?
我々は確かに、葉の近くに他のポイントへの葉の右端に近いを置く増やすとします。
あなたはこの側を通って葉の間に、他の非リーフ側を、与える場合は確かに増加。
ACコード:
#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include<bits/stdc++.h>
//#define int long long
using namespace std;
const int N=1e5+10;
int n,s,deg[N],cnt;
signed main(){
cin>>n>>s;
for(int i=1,a,b;i<n;i++) scanf("%d %d",&a,&b),deg[a]++,deg[b]++;
for(int i=1;i<=n;i++) if(deg[i]==1) cnt++;
printf("%.10lf\n",2.0*s/cnt);
return 0;
}