CP-Algorithms Library

This documentation is automatically generated by competitive-verifier/competitive-verifier

View the Project on GitHub cp-algorithms/cp-algorithms-aux

:heavy_check_mark: $\sum\limits_{i=0}^\infty r^i i^d$ (verify/poly/sum_exp_poly.test.cpp)

Depends on

Code

// @brief $\sum\limits_{i=0}^\infty r^i i^d$
#define PROBLEM "https://judge.yosupo.jp/problem/sum_of_exponential_times_polynomial_limit"
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2")
#define CP_ALGO_MAXN 1 << 24
#include "cp-algo/math/poly.hpp"
#include <bits/stdc++.h>

using namespace std;
using namespace cp_algo::math;

const int mod = 998244353;
typedef modint<mod> base;
typedef poly_t<base> polyn;

polyn xm1k(size_t k) {
    polyn::Vector ans(k+1);
    for(size_t i = 0; i <= k; i++) {
        ans[i] = (k - i) & 1 ? -binom<base>(k, i) : binom<base>(k, i);
    }
    return ans;
}

void solve() {
    int r, d;
    cin >> r >> d;
    polyn num = polyn(bpow(base(1-r), d+1)) - bpow(base(r), d+1) * xm1k(d+1);
    polyn den = polyn(bpow(base(1-r), d+2)) - bpow(base(1-r), d+1) * r * (polyn::xk(1) - polyn(base(1)));
    polyn H = num / den;
    base ans = 0;

    cp_algo::big_vector<base> id(d+1);
    cp_algo::big_vector<int> lp(d+1);
    id[0] = bpow(base(0), d);
    id[1] = 1;
    for(int i = 2; i <= d; i++) {
        if(lp[i] == 0) {
            id[i] = bpow(base(i), d);
            for(int j = i; j <= d; j += i) {
                lp[j] = i;
            }
        } else {
            id[i] = id[lp[i]] * id[i / lp[i]];
        }
    }

    for(int i = 0; i <= d; i++) {
        ans += H[i] * id[i];
    }
    cout << ans << endl;
}

signed main() {
    //freopen("input.txt", "r", stdin);
    ios::sync_with_stdio(0);
    cin.tie(0);
    int t;
    t = 1;// cin >> t;
    while(t--) {
        solve();
    }
}
Traceback (most recent call last):
  File "/home/runner/.local/lib/python3.12/site-packages/competitive_verifier/oj_resolve/resolver.py", line 181, in resolve
    bundled_code = language.bundle(path, basedir=basedir)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/.local/lib/python3.12/site-packages/competitive_verifier/oj/verify/languages/cplusplus.py", line 252, in bundle
    bundler.update(path)
  File "/home/runner/.local/lib/python3.12/site-packages/competitive_verifier/oj/verify/languages/cplusplus_bundle.py", line 327, in update
    assert len(lines) == len(uncommented_lines)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError

Test cases

Env Name Status Elapsed Memory
g++ 0_00 :heavy_check_mark: AC 217 ms 200 MB
g++ 0_01 :heavy_check_mark: AC 216 ms 200 MB
g++ 0_02 :heavy_check_mark: AC 525 ms 278 MB
g++ 2_00 :heavy_check_mark: AC 215 ms 200 MB
g++ 2_01 :heavy_check_mark: AC 217 ms 200 MB
g++ 2_02 :heavy_check_mark: AC 217 ms 200 MB
g++ 2_03 :heavy_check_mark: AC 243 ms 210 MB
g++ 2_04 :heavy_check_mark: AC 679 ms 422 MB
g++ 2_05 :heavy_check_mark: AC 665 ms 422 MB
g++ example_00 :heavy_check_mark: AC 216 ms 200 MB
Back to top page