服了,交代码都交不上

#include <cstdio>
#include <vector>
#define MAXN 100000 + 5
using namespace std;
int n, d[MAXN];
double ans = 0;
vector <int> son[MAXN];

void dfs (int x, int depth) {
    d[x] = depth;
    for (int i = 0; i < son[x].size(); i++)
        if (d[son[x][i]] == 0)
            dfs (son[x][i], depth + 1);
}
int main () {
    scanf ("%d", &n);
    for (int i = 1; i < n; i++) {
        int x, y;
        scanf ("%d%d", &x, &y);
        son[x].push_back (y);
        son[y].push_back (x);
    }
    dfs (1, 1);
    for (int i = 1; i <= n; i++)
        ans += 1.0 /d[i];
    printf("%.20f", ans);
    return 0;
}
2025/4/22 17:27
1350875