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: Inv of Bivariate Formal Power Series (verify/math/bivariate_inv.test.cpp)

Depends on

Code

// @brief Inv of Bivariate Formal Power Series
#define PROBLEM "https://judge.yosupo.jp/problem/inv_of_formal_power_series_2d"
#pragma GCC optimize("O3,unroll-loops")
#include <bits/allocator.h>
#define CP_ALGO_CHECKPOINT
#pragma GCC target("avx2")
#include <bits/stdc++.h>
#include "blazingio/blazingio.min.hpp"
#include "cp-algo/math/multivar.hpp"

using namespace std;
using namespace cp_algo::math::fft;

const int mod = 998244353;
using base = cp_algo::math::modint<mod>;

void solve() {
    size_t n, m;
    cin >> n >> m;
    std::array<size_t, 2> dim{m, n};
    multivar<base> a(dim);
    a.read();
    size_t degree = 1;
    multivar<base> b(std::array{1, 1});
    b.data[0] = a.data[0].inv();
    while(degree < n + m) {
        degree *= 2;
        std::array next_dim{std::min(m, degree), std::min(n, degree)};

        multivar<base> c = a.truncated(next_dim);
        b.extend(next_dim);
        c.mul(b);
        for(auto &x: c.data) {
            x = -x;
        }
        c.data[0] += base(2);
        b.mul(c);
    }
    b.print();
    cp_algo::checkpoint<1>();
}

signed main() {
    //freopen("input.txt", "r", stdin);
    ios::sync_with_stdio(0);
    cin.tie(0);
    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++ degX100_00 :heavy_check_mark: AC 585 ms 121 MB
g++ degX10_00 :heavy_check_mark: AC 588 ms 121 MB
g++ degX2_00 :heavy_check_mark: AC 425 ms 120 MB
g++ degY100_00 :heavy_check_mark: AC 591 ms 123 MB
g++ degY10_00 :heavy_check_mark: AC 582 ms 121 MB
g++ degY2_00 :heavy_check_mark: AC 419 ms 120 MB
g++ example_00 :heavy_check_mark: AC 5 ms 6 MB
g++ maxDegX_00 :heavy_check_mark: AC 423 ms 120 MB
g++ maxDegY_00 :heavy_check_mark: AC 425 ms 120 MB
g++ maxDeg_00 :heavy_check_mark: AC 401 ms 116 MB
g++ maxDeg_01 :heavy_check_mark: AC 415 ms 119 MB
g++ maxDeg_02 :heavy_check_mark: AC 573 ms 120 MB
g++ randomSquare_00 :heavy_check_mark: AC 561 ms 126 MB
g++ randomSquare_01 :heavy_check_mark: AC 556 ms 120 MB
g++ randomSquare_02 :heavy_check_mark: AC 552 ms 125 MB
g++ randomSquare_03 :heavy_check_mark: AC 557 ms 120 MB
g++ randomSquare_04 :heavy_check_mark: AC 558 ms 120 MB
g++ random_00 :heavy_check_mark: AC 398 ms 116 MB
g++ random_01 :heavy_check_mark: AC 416 ms 118 MB
g++ random_02 :heavy_check_mark: AC 381 ms 112 MB
g++ random_03 :heavy_check_mark: AC 407 ms 117 MB
g++ random_04 :heavy_check_mark: AC 387 ms 112 MB
g++ smallDeg_00 :heavy_check_mark: AC 5 ms 6 MB
g++ smallDeg_01 :heavy_check_mark: AC 5 ms 6 MB
g++ smallDeg_02 :heavy_check_mark: AC 5 ms 6 MB
g++ smallDeg_03 :heavy_check_mark: AC 5 ms 6 MB
g++ smallDeg_04 :heavy_check_mark: AC 5 ms 6 MB
g++ square_00 :heavy_check_mark: AC 555 ms 120 MB
Back to top page