提交记录 5432


用户 题目 状态 得分 用时 内存 语言 代码长度
chen_zhe 1002i. 【模板题】多项式乘法 Accepted 100 70.718 ms 6680 KB C++ 1.65 KB
提交时间 评测时间
2018-08-22 18:31:28 2020-08-01 00:17:08
// luogu-judger-enable-o2
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <cctype>

using namespace std;

const int MOD=998244353,G=3,Gi=332748118;

int read()
{
    int x=0,f=1;char ch=getchar();
    while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();}
    while (isdigit(ch)){x=x*10+ch-48;ch=getchar();}
    return x*f;
}

int n,m,lim=1,l,r[4200000];

long long a[3000050],b[3000050];

long long quickpow(long long a,long long b)
{
    long long ans=1;
    while (b!=0)
    {
        if (b&1)
        {
            ans*=a;
            ans%=MOD;
        }
        a*=a;
        a%=MOD;
        b>>=1;
    }
    return ans;
}

void NTT(long long *A,int type)
{
    for (int i=0;i<lim;i++)
        if (i<r[i])
            swap(A[i],A[r[i]]);
    for (int mid=1;mid<lim;mid<<=1)
    {
        long long Wn=quickpow((type==1?G:Gi),(MOD-1)/(mid<<1));
        for (int j=0;j<lim;j+=(mid<<1))
        {
            long long W=1;
            for (int k=0;k<mid;k++)
            {
                int x=A[j+k],y=W*(A[j+k+mid])%MOD;
                A[j+k]=(x+y)%MOD;
                A[j+k+mid]=(x-y+MOD)%MOD;
                W=(W*Wn)%MOD;
            }
        }
    }
}

int main()
{
    n=read();m=read();
    for (int i=0;i<=n;i++)
        a[i]=read()%MOD;
    for (int i=0;i<=m;i++)
        b[i]=read()%MOD;
    while (lim<=n+m)
    {
        lim<<=1;
        l++;
    }
    for (int i=0;i<lim;i++)
        r[i]=(r[i>>1]>>1)|((i&1)<<(l-1));
    NTT(a,1);
    NTT(b,1);
    for (int i=0;i<lim;i++)
        a[i]=(a[i]*b[i])%MOD;
    NTT(a,-1);
    int inv=quickpow(lim,MOD-2);
    for (int i=0;i<=n+m;i++)
        printf("%d ",a[i]*inv%MOD);
    return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #18.86 us28 KBAcceptedScore: 0

Subtask #1 Testcase #270.024 ms6 MB + 456 KBAcceptedScore: 100

Subtask #1 Testcase #332.469 ms2 MB + 820 KBAcceptedScore: 0

Subtask #1 Testcase #432.616 ms2 MB + 808 KBAcceptedScore: 0

Subtask #1 Testcase #510.35 us28 KBAcceptedScore: 0

Subtask #1 Testcase #69.95 us28 KBAcceptedScore: 0

Subtask #1 Testcase #78.63 us28 KBAcceptedScore: 0

Subtask #1 Testcase #865.042 ms6 MB + 188 KBAcceptedScore: 0

Subtask #1 Testcase #964.825 ms6 MB + 188 KBAcceptedScore: 0

Subtask #1 Testcase #1059.725 ms5 MB + 944 KBAcceptedScore: 0

Subtask #1 Testcase #1170.397 ms6 MB + 536 KBAcceptedScore: 0

Subtask #1 Testcase #1270.718 ms5 MB + 416 KBAcceptedScore: 0

Subtask #1 Testcase #137.58 us28 KBAcceptedScore: 0


Judge Duck Online | 评测鸭在线
Server Time: 2026-04-11 22:33:41 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠