感觉实力还是不太行,今天做的2021年济南站ICPC的题,一个水题竟然做了好长时间,把这个题想成最短路了,其实期望的话,只需要把所有的房间全部走一遍最后除以房价数减一就可以了,不应该在最短路上纠结这么长时间的,还是要充分理解题目啊。
#include "bits/stdc++.h"
using namespace std;
const int N = 1000;
vector<int> v[N];
int vis[N];
double summ = 0, mid = 0;
void dfs(int x){
vis[x] = 1;
summ += mid;
for(int i = 0; i < v[x].size(); i++){
if(vis[v[x][i]] == 0){
mid ++;
dfs(v[x][i]);
mid ++;
}
}
}
int main(){
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
int t, n, a, b;
cin>>t;
while(t--){
cin>>n;
summ = 0;
mid = 0;
memset(vis, 0, sizeof(vis));
for(int i = 0; i <= N; i++) v[i].clear();
for(int i = 0; i < n - 1; i ++){
cin>>a>>b;
v[a].push_back(b);
v[b].push_back(a);
}
dfs(1);
printf("%.10lf\n", summ/(n - 1));
}
return 0;
}