Submission #38492131


Source Code Expand

/*
 * File created on 01/30/2023 at 18:37:19.
 * Link to problem: 
 * Description: 
 * Time complexity: O()
 * Space complexity: O()
 * Status: ---
 * Copyright: Ⓒ 2023 Francois Vogel
*/

#include <bits/stdc++.h>

#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>

using namespace std;
using namespace __gnu_pbds;

#define pii pair<int, int>
#define f first
#define s second

#define vi vector<int>
#define all(x) x.begin(), x.end()
#define sz(x) (int)((x).size())
#define pb push_back
#define ins insert
#define cls clear

#define int ll
#define ll long long
#define ld long double

typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;

const int siz = 5040;
const int MOD = 998244353;

vi graph [siz];

vector<vi> dfs(int x, int p = -1) {
    vector<vi> dp = {{1, 0}, {0, 1}};
    for (int y : graph[x]) if (y != p) {
        auto ret = dfs(y, x);
        vector<vi> ndp = vector<vi>(2, vi(sz(dp[0])+sz(ret[0])-1, 0));
        for (int j = 0; j < sz(dp[0]); j++) {
            for (int k = 0; k < sz(ret[0]); k++) {
                ndp[0][j+k] += dp[0][j]*(ret[0][k]+ret[1][k])%MOD;
                ndp[0][j+k] %= MOD;
                ndp[1][j+k] += dp[1][j]*ret[0][k]%MOD;
                ndp[1][j+k] %= MOD;
                if (j+k > 0) {
                    ndp[1][j+k-1] += dp[1][j]*ret[1][k]%MOD;
                    ndp[1][j+k-1] %= MOD;
                }
            }
        }
        swap(dp, ndp);
    }
    return dp;
}

signed main() {
    cin.tie(0);
    ios_base::sync_with_stdio(0);

    int n;
    cin >> n;
    for (int i = 0; i < n-1; i++) {
        int x, y;
        cin >> x >> y;
        x--; y--;
        graph[x].pb(y);
        graph[y].pb(x);
    }
    vector<vi> dp = dfs(0);
    for (int i = 1; i <= n; i++) {
        cout << (dp[0][i]+dp[1][i])%MOD << "\n";
    }

    cout.flush();
    int d = 0;
    d++;
}

Submission Info

Submission Time
Task F - Components
User fvogel
Language C++ (GCC 9.2.1)
Score 500
Code Size 1999 Byte
Status AC
Exec Time 193 ms
Memory 6000 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 3
AC × 54
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_srnd_00.txt, 01_srnd_01.txt, 01_srnd_02.txt, 01_srnd_03.txt, 01_srnd_04.txt, 01_srnd_05.txt, 01_srnd_06.txt, 01_srnd_07.txt, 02_rnd_00.txt, 02_rnd_01.txt, 02_rnd_02.txt, 02_rnd_03.txt, 02_rnd_04.txt, 02_rnd_05.txt, 02_rnd_06.txt, 02_rnd_07.txt, 03_path_00.txt, 03_path_01.txt, 03_path_02.txt, 03_path_03.txt, 04_star_00.txt, 04_star_01.txt, 04_star_02.txt, 04_star_03.txt, 05_caterpillar_00.txt, 05_caterpillar_01.txt, 05_caterpillar_02.txt, 05_caterpillar_03.txt, 05_caterpillar_04.txt, 05_caterpillar_05.txt, 05_caterpillar_06.txt, 05_caterpillar_07.txt, 05_caterpillar_08.txt, 05_caterpillar_09.txt, 05_caterpillar_10.txt, 05_caterpillar_11.txt, 05_caterpillar_12.txt, 05_caterpillar_13.txt, 06_bintree_00.txt, 06_bintree_01.txt, 06_bintree_02.txt, 06_bintree_03.txt, 06_bintree_04.txt, 06_bintree_05.txt, 06_bintree_06.txt, 06_bintree_07.txt, 07_sqrt_00.txt, 07_sqrt_01.txt, 07_sqrt_02.txt, 07_sqrt_03.txt, 08_one_00.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 2 ms 3692 KiB
00_sample_01.txt AC 2 ms 3768 KiB
00_sample_02.txt AC 2 ms 3740 KiB
01_srnd_00.txt AC 2 ms 3696 KiB
01_srnd_01.txt AC 2 ms 3692 KiB
01_srnd_02.txt AC 2 ms 3748 KiB
01_srnd_03.txt AC 1 ms 3620 KiB
01_srnd_04.txt AC 2 ms 3728 KiB
01_srnd_05.txt AC 2 ms 3668 KiB
01_srnd_06.txt AC 2 ms 3668 KiB
01_srnd_07.txt AC 2 ms 3744 KiB
02_rnd_00.txt AC 92 ms 4200 KiB
02_rnd_01.txt AC 97 ms 4144 KiB
02_rnd_02.txt AC 93 ms 4208 KiB
02_rnd_03.txt AC 92 ms 4148 KiB
02_rnd_04.txt AC 95 ms 4264 KiB
02_rnd_05.txt AC 93 ms 4036 KiB
02_rnd_06.txt AC 93 ms 4188 KiB
02_rnd_07.txt AC 97 ms 4084 KiB
03_path_00.txt AC 179 ms 6000 KiB
03_path_01.txt AC 142 ms 5432 KiB
03_path_02.txt AC 177 ms 5892 KiB
03_path_03.txt AC 176 ms 5968 KiB
04_star_00.txt AC 191 ms 4268 KiB
04_star_01.txt AC 193 ms 4176 KiB
04_star_02.txt AC 144 ms 4012 KiB
04_star_03.txt AC 143 ms 4148 KiB
05_caterpillar_00.txt AC 104 ms 4128 KiB
05_caterpillar_01.txt AC 129 ms 4732 KiB
05_caterpillar_02.txt AC 170 ms 5036 KiB
05_caterpillar_03.txt AC 162 ms 5104 KiB
05_caterpillar_04.txt AC 176 ms 5012 KiB
05_caterpillar_05.txt AC 134 ms 4528 KiB
05_caterpillar_06.txt AC 95 ms 4056 KiB
05_caterpillar_07.txt AC 93 ms 4204 KiB
05_caterpillar_08.txt AC 98 ms 4112 KiB
05_caterpillar_09.txt AC 134 ms 5020 KiB
05_caterpillar_10.txt AC 122 ms 4568 KiB
05_caterpillar_11.txt AC 95 ms 4156 KiB
05_caterpillar_12.txt AC 93 ms 4192 KiB
05_caterpillar_13.txt AC 94 ms 4164 KiB
06_bintree_00.txt AC 92 ms 4084 KiB
06_bintree_01.txt AC 93 ms 4188 KiB
06_bintree_02.txt AC 69 ms 4068 KiB
06_bintree_03.txt AC 65 ms 3924 KiB
06_bintree_04.txt AC 67 ms 3920 KiB
06_bintree_05.txt AC 69 ms 4056 KiB
06_bintree_06.txt AC 68 ms 4080 KiB
06_bintree_07.txt AC 68 ms 4012 KiB
07_sqrt_00.txt AC 95 ms 4152 KiB
07_sqrt_01.txt AC 101 ms 4160 KiB
07_sqrt_02.txt AC 98 ms 4096 KiB
07_sqrt_03.txt AC 101 ms 4040 KiB
08_one_00.txt AC 2 ms 3552 KiB