Submission #4330374


Source Code Expand

#include <algorithm>
#include <iostream>
#include <iomanip>
#include <cstring>
#include <string>
#include <vector>
#include <queue>
#include <cmath>
#include <stack>
#include <set>
#include <map>
typedef long long ll;
typedef unsigned int uint;
using namespace std;
typedef pair<ll, int> P;

const ll MOD = 1000000007LL;
int n, a[1005], b[1005];
vector <int> edge[1005];
ll dp[1005], inv[1005], fac[1005], fiv[1005];

ll combination(int x, int y) {
    return fac[x] * fiv[y] % MOD * fiv[x-y] % MOD;
}

P dfs(int cur, int par) {
    dp[cur] = 1;

    int sz = 0;
    for (auto i : edge[cur]) {
        if (i == par) continue;

        P p = dfs(i, cur);
        sz += p.second;
    }

    int ret_sz = sz + 1;
    ll ret = 1LL;
    for (auto i : edge[cur]) {
        if (i == par) continue;

        P p = dfs(i, cur);
        ret = ret * p.first % MOD * combination(sz, p.second) % MOD;
        sz -= p.second;
    }

    return P(ret, ret_sz);
}

int main() {
    cin >> n;
    for (int i = 1; i < n; i++) {
        cin >> a[i] >> b[i];
        edge[a[i]].push_back(b[i]);
        edge[b[i]].push_back(a[i]);
    }

    inv[1]=fac[1]=fiv[1]=inv[0]=fac[0]=fiv[0]=1;
    for (ll i = 2; i <= n; i++) {
        fac[i] = fac[i-1] * i % MOD; // n!
        inv[i] = inv[MOD%i] * (MOD-MOD/i) % MOD; // n^-1
        fiv[i] = fiv[i-1] * inv[i] % MOD; // (n!)^-1
    }

    ll ans = 0LL;
    for (int i = 1; i < n; i++) {
        fill(dp, dp+n, 0);

        P ret1 = dfs(a[i], b[i]);
        P ret2 = dfs(b[i], a[i]);
        ans = (ans + ret1.first * ret2.first % MOD * combination(n-2, ret1.second-1) % MOD) % MOD;
    }

    cout << ans << "\n";
    return 0;
}

Submission Info

Submission Time
Task N - 木
User veqcc
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1730 Byte
Status TLE
Exec Time 2103 ms
Memory 384 KB

Judge Result

Set Name All
Score / Max Score 0 / 5
Status
AC × 3
TLE × 6
Set Name Test Cases
All 00, 01, 02, 03, 04, 05, 06, 90, 91
Case Name Status Exec Time Memory
00 TLE 2103 ms 384 KB
01 AC 21 ms 384 KB
02 TLE 2103 ms 384 KB
03 TLE 2103 ms 384 KB
04 TLE 2103 ms 384 KB
05 TLE 2103 ms 384 KB
06 TLE 2103 ms 384 KB
90 AC 1 ms 256 KB
91 AC 1 ms 256 KB