提交记录 13362


用户 题目 状态 得分 用时 内存 语言 代码长度
lhm_ 1002i. 【模板题】多项式乘法 Accepted 100 70.874 ms 6700 KB C++ 1.52 KB
提交时间 评测时间
2020-08-01 11:41:07 2020-08-01 11:41:11
#include<bits/stdc++.h>
#define maxn 4000010
#define P 998244353
#define G 3
#define Gi (P+1)/G
using namespace std;
typedef long long ll;
template<typename T> inline void read(T &x)
{
    x=0;char c=getchar();bool flag=false;
    while(!isdigit(c)){if(c=='-')flag=true;c=getchar();}
    while(isdigit(c)){x=(x<<1)+(x<<3)+(c^48);c=getchar();}
    if(flag)x=-x;
}
int n,m;
int rev[maxn];
ll f[maxn],g[maxn];
ll qp(ll x,ll y)
{
    ll v=1;
    while(y)
    {
        if(y&1) v=v*x%P;
        x=x*x%P,y>>=1;
    }
    return v;
}
int calc(int n)
{
    int lim=1;
    while(lim<=n) lim<<=1;
    for(int i=0;i<lim;++i)
        rev[i]=(rev[i>>1]>>1)|((i&1)?lim>>1:0);
    return lim;
}
void NTT(ll *a,int lim,int type)
{
    for(int i=0;i<lim;++i)
        if(i<rev[i])
            swap(a[i],a[rev[i]]);
    for(int len=1;len<lim;len<<=1)
    {
        ll wn=qp(type==1?G:Gi,(P-1)/(len<<1));
        for(int i=0;i<lim;i+=len<<1)
        {
            ll w=1;
            for(int j=i;j<i+len;++j,w=w*wn%P)
            {
                ll x=a[j],y=w*a[j+len]%P;
                a[j]=(x+y)%P,a[j+len]=(x-y+P)%P;
            }
        }
    }
    if(type==1) return;
    ll inv=qp(lim,P-2);
    for(int i=0;i<lim;++i) a[i]=a[i]*inv%P;
}
void mul(ll *f,ll *g)
{
    int lim=calc(n+m);
    NTT(f,lim,1),NTT(g,lim,1);
    for(int i=0;i<lim;++i) f[i]=f[i]*g[i]%P;
    NTT(f,lim,-1);
}
int main()
{
    read(n),read(m);
    for(int i=0;i<=n;++i) read(f[i]);
    for(int i=0;i<=m;++i) read(g[i]);
    mul(f,g);
    for(int i=0;i<=n+m;++i) printf("%lld ",f[i]);
    return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #135.08 us48 KBAcceptedScore: 0

Subtask #1 Testcase #269.927 ms6 MB + 476 KBAcceptedScore: 0

Subtask #1 Testcase #332.612 ms2 MB + 840 KBAcceptedScore: 100

Subtask #1 Testcase #432.723 ms2 MB + 828 KBAcceptedScore: 0

Subtask #1 Testcase #537.39 us48 KBAcceptedScore: 0

Subtask #1 Testcase #636.74 us48 KBAcceptedScore: 0

Subtask #1 Testcase #735.4 us48 KBAcceptedScore: 0

Subtask #1 Testcase #864.637 ms6 MB + 208 KBAcceptedScore: 0

Subtask #1 Testcase #964.811 ms6 MB + 208 KBAcceptedScore: 0

Subtask #1 Testcase #1059.45 ms5 MB + 964 KBAcceptedScore: 0

Subtask #1 Testcase #1170.619 ms6 MB + 556 KBAcceptedScore: 0

Subtask #1 Testcase #1270.874 ms5 MB + 436 KBAcceptedScore: 0

Subtask #1 Testcase #1334.59 us48 KBAcceptedScore: 0


Judge Duck Online | 评测鸭在线
Server Time: 2026-03-24 12:18:28 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠