提交记录 8945


用户 题目 状态 得分 用时 内存 语言 代码长度
wanghongyi 1002i. 【模板题】多项式乘法 Accepted 100 99.24 ms 6680 KB C++ 1.61 KB
提交时间 评测时间
2019-03-26 16:48:26 2020-08-01 01:27:16
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
const int MAXN=1100000;
const int Mod=998244353;
const int rt=3;
const int rtinv=332748118;
int n,x,lena,lenb,rev[MAXN];
char sa[MAXN],sb[MAXN];
ll a[MAXN],b[MAXN];
inline ll MOD(ll x){
    if (x<0) x+=Mod;
    if (x>=Mod) x-=Mod;
    return x;
}
ll qpow(ll x,ll a){
    ll res=1;
    while (a){
        if (a&1) res=res*x%Mod;
        x=x*x%Mod; a>>=1;
    }
    return res;
}
void NTT(ll *a,bool inv){
    for (int i=0;i<n;i++)
        if (i<rev[i]) swap(a[i],a[rev[i]]);
    for (int l=2;l<=n;l<<=1){
        int m=l>>1;
        ll o;
        if (inv) o=qpow(rtinv,(Mod-1)/l);
        else o=qpow(rt,(Mod-1)/l);
        for (ll *p=a;p!=a+n;p+=l){
            ll omg=1;
            for (int i=0;i<m;i++,omg=(omg*o)%Mod){
                ll t=omg*p[i+m]%Mod;
                p[i+m]=MOD(p[i]-t);
                p[i]=MOD(p[i]+t);
            }
        }
    }
}
int main(){
    scanf("%d%d",&lena,&lenb);
    lena++; lenb++;
    n=1; int lim=0;
    while (n<lena+lenb){
        n<<=1;
        lim++;
    }
	for (int i=0;i<n;i++) rev[i]=(rev[i>>1]>>1)|((i&1)<<(lim-1));
    for (int i=0;i<lena;i++){
        scanf("%lld",&a[lena-i-1]);
        a[lena-i-1]=MOD(a[lena-i-1]%Mod);
    }
    for (int i=0;i<lenb;i++){
        scanf("%lld",&b[lenb-i-1]);
        b[lenb-i-1]=MOD(b[lenb-i-1]%Mod);
    }
    
    NTT(a,false); NTT(b,false);
    for (int i=0;i<n;i++) a[i]=a[i]*b[i]%Mod;
    NTT(a,true);
    ll t=qpow(n,Mod-2);
    for (int i=lena+lenb-2;i>0;i--) printf("%lld ",a[i]*t%Mod);
    printf("%lld\n",a[0]*t%Mod);
    return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #110.05 us28 KBAcceptedScore: 0

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

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

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

Subtask #1 Testcase #511.78 us28 KBAcceptedScore: 0

Subtask #1 Testcase #610.8 us28 KBAcceptedScore: 0

Subtask #1 Testcase #710.73 us28 KBAcceptedScore: 0

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

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

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

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

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

Subtask #1 Testcase #139.63 us28 KBAcceptedScore: 0


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