cp-library

This documentation is automatically generated by online-judge-tools/verification-helper

View the Project on GitHub rniya/cp-library

:x: test/yosupo/tree_path_composite_sum.test.cpp

Depends on

Code

#define PROBLEM "https://judge.yosupo.jp/problem/tree_path_composite_sum"

#include <iostream>
#include "atcoder/modint"
#include "tree/Rerooting.hpp"

using mint = atcoder::modint998244353;

struct TreeDP {
    struct T {
        mint sum, cnt;
    };

    std::vector<int> a, b, c;

    T e() { return {0, 0}; }

    T op(const T& l, const T& r) { return {l.sum + r.sum, l.cnt + r.cnt}; }

    T add_vertex(const T& t, int v) { return {t.sum + a[v], t.cnt + 1}; }

    T add_edge(const T& t, int e) { return {t.sum * b[e] + t.cnt * c[e], t.cnt}; }
};

int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
    int N;
    std::cin >> N;
    std::vector<int> a(N), u(N - 1), v(N - 1), b(N - 1), c(N - 1);
    for (int i = 0; i < N; i++) std::cin >> a[i];
    for (int i = 0; i < N - 1; i++) std::cin >> u[i] >> v[i] >> b[i] >> c[i];

    TreeDP treedp{a, b, c};
    Rerooting<TreeDP> G(N, treedp);
    for (int i = 0; i < N - 1; i++) G.add_edge(u[i], v[i]);

    auto ans = G.solve();
    for (int i = 0; i < N; i++) std::cout << ans[i].sum.val() << (i + 1 == N ? '\n' : ' ');
    return 0;
}
Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.13.3/x64/lib/python3.13/site-packages/onlinejudge_verify/documentation/build.py", line 71, in _render_source_code_stat
    bundled_code = language.bundle(stat.path, basedir=basedir, options={'include_paths': [basedir]}).decode()
                   ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.13.3/x64/lib/python3.13/site-packages/onlinejudge_verify/languages/cplusplus.py", line 187, in bundle
    bundler.update(path)
    ~~~~~~~~~~~~~~^^^^^^
  File "/opt/hostedtoolcache/Python/3.13.3/x64/lib/python3.13/site-packages/onlinejudge_verify/languages/cplusplus_bundle.py", line 401, in update
    self.update(self._resolve(pathlib.Path(included), included_from=path))
                ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.13.3/x64/lib/python3.13/site-packages/onlinejudge_verify/languages/cplusplus_bundle.py", line 260, in _resolve
    raise BundleErrorAt(path, -1, "no such header")
onlinejudge_verify.languages.cplusplus_bundle.BundleErrorAt: atcoder/modint: line -1: no such header
Back to top page