#include <bits/stdc++.h>
using namespace std;
vector<int> vec[100010];
int vis[100010];
double ans;
void dfs(int u, int len, double p) {
  vis[u] = 1;
  int k = 0;
  for (int i = 0; i < vec[u].size(); i++) {
    int v = vec[u][i];
    if (!vis[v]) {
      k++;
    }
  }
  if (k < 1) {
    ans = ans + len * p;
    return;
  }
  for (int i = 0; i < vec[u].size(); i++) {
    int v = vec[u][i];
    if (!vis[v]) {
      dfs(v, len + 1, p / k);
    }
  }
}
void init() {
  ans = 0;
  for (int i = 0; i < 100010; i++) {
    vec[i].clear();
    vis[i] = 0;
  }
}
int main() {
  int n;
  while (~scanf("%d", &n)) {
    init();
    int u, v;
    for (int i = 0; i < n - 1; i++) {
      scanf("%d %d", &u, &v);
      vec[u].push_back(v);
      vec[v].push_back(u);
    }
    dfs(1, 0, 1);
    printf("%.12lf\n", ans);
  }
  return 0;
}
