Submission #1573958


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

int n;
vector<vector<int>> g;
using ll = long long;
ll mp(int x, int y) {
    return (ll)x << 32 | y & 0xFFFFFFFF;
}
map<ll, double> dp;


double rec(int u, int p) {
    if (dp.count(mp(u, p))) {
        return dp[mp(u, p)];
    }
    double &res = dp[mp(u, p)];
    res = 0;
    int cnt = 0;
    for (auto &v : g[u]) {
        if (v != p) ++cnt;
    }
    if (cnt == 0) {
        res = 0;
    } else {
        for (auto &v : g[u]) {
            if (v != p) {
                res += 1 + rec(v, u);
            }
        }
        res /= cnt;
    }
    return res;
}

int main() {
    while (cin >> n) {
        dp.clear();
        g.assign(n, {});
        for (int i = 0; i < n - 1; i++) {
            int u, v;
            cin >> u >> v;
            --u; --v;
            g[u].emplace_back(v);
            g[v].emplace_back(u);
        }
        for (int i = 0; i < n; i++) {
            printf("%.10f\n", rec(i, -1));
        }
    }
}

Submission Info

Submission Time
Task D - Driving on a Tree
User tubo28
Language C++14 (GCC 5.4.1)
Score 410
Code Size 1034 Byte
Status TLE
Exec Time 1057 ms
Memory 45440 KB

Judge Result

Set Name Subtask1 Subtask2 Subtask3
Score / Max Score 190 / 190 220 / 220 0 / 390
Status
AC × 3
AC × 2
AC × 7
TLE × 1
Set Name Test Cases
Subtask1 sub1_in1.txt, sub1_in2.txt, sub1_in3.txt
Subtask2 sub2_in1.txt, sub2_in2.txt
Subtask3 sub1_in1.txt, sub1_in2.txt, sub1_in3.txt, sub2_in1.txt, sub2_in2.txt, sub3_in1.txt, sub3_in2.txt, sub3_in3.txt
Case Name Status Exec Time Memory
sub1_in1.txt AC 1 ms 256 KB
sub1_in2.txt AC 3 ms 512 KB
sub1_in3.txt AC 361 ms 33024 KB
sub2_in1.txt AC 3 ms 512 KB
sub2_in2.txt AC 3 ms 512 KB
sub3_in1.txt AC 610 ms 38528 KB
sub3_in2.txt TLE 1057 ms 18420 KB
sub3_in3.txt AC 435 ms 45440 KB