Submission #1694539


Source Code Expand

#include "bits/stdc++.h"
using namespace std;
#define FOR(i,j,k) for(int (i)=(j);(i)<(int)(k);++(i))
#define rep(i,j) FOR(i,0,j)
#define each(x,y) for(auto &(x):(y))
#define mp make_pair
#define mt make_tuple
#define all(x) (x).begin(),(x).end()
#define debug(x) cout<<#x<<": "<<(x)<<endl
#define smax(x,y) (x)=max((x),(y))
#define smin(x,y) (x)=min((x),(y))
#define MEM(x,y) memset((x),(y),sizeof (x))
#define sz(x) (int)(x).size()
#define pb push_back
typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;
typedef vector<ll> vll;

int N, E[150000][2];
vi G[150000];
double dp[150001][2];

double f(int e, int s) {
    double &res = dp[e][s];
    if (res > -1)return res;
    int u = E[e][s];
    res = 0;
    if (sz(G[u]) == 1)return res;
    double p = 1.0 / (sz(G[u]) - 1);

    each(ne, G[u])if (ne != e) {
        res += f(ne, E[ne][0] == u);
    }
    res = res*p + 1.0;
    return res;
}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cin >> N;
    rep(i, N-1) {
        int u, v;
        cin >> u >> v;
        --u; --v;
        E[i][0] = u;
        E[i][1] = v;
        G[u].push_back(i);
        G[v].push_back(i);
    }

    rep(i, N)rep(j, 2)dp[i][j] = -2;
    cout << fixed << setprecision(10);
    rep(i, N) {
        double ans = 0, p = -1;
        if (sz(G[i]))p = 1.0 / sz(G[i]);
        each(e, G[i]) {
            ans += f(e, E[e][0] == i);
        }
        if (sz(G[i]))ans = ans*p + 1;
        cout << ans << endl;
    }
}

Submission Info

Submission Time
Task D - Driving on a Tree
User paruki
Language C++14 (GCC 5.4.1)
Score 410
Code Size 1549 Byte
Status TLE
Exec Time 1056 ms
Memory 19712 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 3 ms 4352 KB
sub1_in2.txt AC 5 ms 4480 KB
sub1_in3.txt AC 333 ms 17024 KB
sub2_in1.txt AC 5 ms 4480 KB
sub2_in2.txt AC 5 ms 4480 KB
sub3_in1.txt AC 471 ms 13952 KB
sub3_in2.txt TLE 1056 ms 12660 KB
sub3_in3.txt AC 407 ms 19712 KB