提交记录 21341


用户 题目 状态 得分 用时 内存 语言 代码长度
hzlqwq 1002i. 【模板题】多项式乘法 Accepted 100 65.972 ms 4684 KB C++ 1.52 KB
提交时间 评测时间
2024-02-27 17:52:39 2024-02-27 17:52:43
#include <algorithm>
#include <iostream>

using namespace std;

const int N = 1 << 21, g = 3, mod = 998244353;

int n, m, a[N], b[N], lon, len = 1, ilen, rev[N];

inline int qpow(int x, int k)
{
    int res = 1;
    while (k)
    {
        if (k & 1)
            res = 1ll * res * x % mod;
        x = 1ll * x * x % mod, k >>= 1;
    }
    return res;
}

inline void NTT(int *f, bool type)
{
    for (int i = 0; i < len; i++)
        if (i < rev[i])
            swap(f[i], f[rev[i]]);
    for (int i = 1; i < len; i <<= 1)
        for (int j = 0, gn = qpow(g, (mod - 1) / (i << 1)); j < len; j += i << 1)
            for (int k = 0, g0 = 1; k < i; k++, g0 = 1ll * g0 * gn % mod)
            {
                int x = f[j + k], y = 1ll * g0 * f[i + j + k] % mod;
                f[j + k] = (x + y) % mod, f[i + j + k] = (x - y) % mod;
            }
    if (!type)
    {
        reverse(f + 1, f + len);
        for (int i = 0; i < len; i++)
            f[i] = 1ll * f[i] * ilen % mod;
    }
}

int main()
{
    ios::sync_with_stdio(0), cin.tie(0);
    cin >> n >> m;
    for (int i = 0; i <= n; i++)
        cin >> a[i];
    for (int i = 0; i <= m; i++)
        cin >> b[i];
    while (len <= n + m)
        lon++, len <<= 1;
    ilen = qpow(len, mod - 2);
    for (int i = 0; i < len; i++)
        rev[i] = rev[i >> 1] >> 1 | (i & 1) << lon - 1;
    NTT(a, 1), NTT(b, 1);
    for (int i = 0; i < len; i++)
        a[i] = 1ll * a[i] * b[i] % mod;
    NTT(a, 0);
    for (int i = 0; i <= n + m; i++)
        cout << (a[i] + mod) % mod << " ";
    return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #150.12 us72 KBAcceptedScore: 100

Subtask #1 Testcase #265.472 ms4 MB + 508 KBAcceptedScore: 0

Subtask #1 Testcase #330.314 ms1 MB + 872 KBAcceptedScore: 0

Subtask #1 Testcase #430.246 ms1 MB + 860 KBAcceptedScore: 0

Subtask #1 Testcase #543.68 us72 KBAcceptedScore: 0

Subtask #1 Testcase #642.9 us72 KBAcceptedScore: 0

Subtask #1 Testcase #742.02 us72 KBAcceptedScore: 0

Subtask #1 Testcase #861.062 ms4 MB + 240 KBAcceptedScore: 0

Subtask #1 Testcase #961.039 ms4 MB + 240 KBAcceptedScore: 0

Subtask #1 Testcase #1056.631 ms3 MB + 996 KBAcceptedScore: 0

Subtask #1 Testcase #1165.972 ms4 MB + 588 KBAcceptedScore: 0

Subtask #1 Testcase #1262.011 ms3 MB + 468 KBAcceptedScore: 0

Subtask #1 Testcase #1341.37 us72 KBAcceptedScore: 0


Judge Duck Online | 评测鸭在线
Server Time: 2025-07-19 18:41:17 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠