fork download
  1. #include <bits/stdc++.h>
  2. #define int long long
  3. using namespace std;
  4.  
  5.  
  6.  
  7.  
  8. int n;
  9. vector<int> adj[100008];
  10. long double f(int v , int p ){
  11. long double sum = 0;
  12. for(auto u : adj[v])
  13. if(u != p)
  14. sum += f(u, v) + 1;
  15. return sum ? sum / (adj[v].size() - (p != -1)) : 0;
  16. }
  17. void solve(){
  18. cin>>n;
  19. for(int i=0;i<n-1;i++){
  20. int x,y;
  21. cin>>x>>y;
  22. adj[--x].push_back(--y);
  23. adj[y].push_back(x);
  24. }
  25.  
  26. long double ans=f(0,-1);
  27. cout << fixed << setprecision(7) << ans << '\n';
  28.  
  29.  
  30. }
  31.  
  32. signed main() {
  33.  
  34. solve();
  35.  
  36. return 0;
  37. }
  38.  
Success #stdin #stdout 0.01s 6008KB
stdin
4
1 2
1 3
2 4
stdout
1.5000000