求助,满屏WA
查看原帖
求助,满屏WA
1023961
Ryzen_9_9950X3D楼主2023/9/29 18:31
#include <iostream>
#include <vector>

using namespace std;

const int MOD = 998244353;

vector<vector<int>> adj;
vector<int> sizes;

void dfs(int u, int parent) {
    sizes[u] = 1;
    for (int v : adj[u]) {
        if (v != parent) {
            dfs(v, u);
            sizes[u] += sizes[v];
        }
    }
}

int solve(int u, int parent, int l) {
    int ans = 1;
    for (int v : adj[u]) {
        if (v != parent) {
            ans = (ans * solve(v, u, l)) % MOD;
        }
    }
    if (l == 0) {
        return ans;
    } else {
        return (ans * (sizes[u] + 1)) % MOD;
    }
}

int main() {
    int n, L, k;
    cin >> n >> L >> k;
    
    adj.resize(n + 1);
    sizes.resize(n + 1);
    
    for (int i = 1; i < n; i++) {
        int u, v;
        cin >> u >> v;
        adj[u].push_back(v);
        adj[v].push_back(u);
    }
    
    dfs(1, 0);
    
    int ans = solve(1, 0, L);
    cout << ans << endl;
    
    return 0;
}
2023/9/29 18:31
加载中...