提交记录 8951


用户 题目 状态 得分 用时 内存 语言 代码长度
wanghongyi 1002i. 【模板题】多项式乘法 Accepted 100 101.967 ms 4632 KB C++11 1.53 KB
提交时间 评测时间
2019-03-26 17:14:25 2020-08-01 01:27:30
#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;//qpow(rt,Mod-2)
int n,x,lena,lenb,rev[MAXN];
char sa[MAXN],sb[MAXN];
int a[MAXN],b[MAXN];
inline int MOD(int x){
    if (x<0) x+=Mod;
    if (x>=Mod) x-=Mod;
    return x;
}
int qpow(int x,int a){
    int res=1;
    while (a){
        if (a&1) res=1ll*res*x%Mod;
        x=1ll*x*x%Mod; a>>=1;
    }
    return res;
}
void NTT(int *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,o;
        if (inv) o=qpow(rtinv,(Mod-1)/l);
        else o=qpow(rt,(Mod-1)/l);
        for (int *p=a;p!=a+n;p+=l){
            int omg=1;
            for (int i=0;i<m;i++,omg=1ll*omg*o%Mod){
                int t=1ll*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("%d",&a[lena-i-1]);
    for (int i=0;i<lenb;i++) scanf("%d",&b[lenb-i-1]);
    NTT(a,false); NTT(b,false);
    for (int i=0;i<n;i++) a[i]=1ll*a[i]*b[i]%Mod;
    NTT(a,true);
    int t=qpow(n,Mod-2);
    for (int i=lena+lenb-2;i>0;i--) printf("%lld ",1ll*a[i]*t%Mod);
    printf("%lld\n",1ll*a[0]*t%Mod);
    return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #110.79 us28 KBAcceptedScore: 0

Subtask #1 Testcase #2101.967 ms4 MB + 456 KBAcceptedScore: 100

Subtask #1 Testcase #343.092 ms1 MB + 820 KBAcceptedScore: 0

Subtask #1 Testcase #443.186 ms1 MB + 808 KBAcceptedScore: 0

Subtask #1 Testcase #511.67 us28 KBAcceptedScore: 0

Subtask #1 Testcase #611.54 us28 KBAcceptedScore: 0

Subtask #1 Testcase #711.78 us28 KBAcceptedScore: 0

Subtask #1 Testcase #895.306 ms4 MB + 188 KBAcceptedScore: 0

Subtask #1 Testcase #995.126 ms4 MB + 188 KBAcceptedScore: 0

Subtask #1 Testcase #1088.471 ms3 MB + 944 KBAcceptedScore: 0

Subtask #1 Testcase #1189.753 ms4 MB + 536 KBAcceptedScore: 0

Subtask #1 Testcase #1273.906 ms3 MB + 416 KBAcceptedScore: 0

Subtask #1 Testcase #1310.19 us28 KBAcceptedScore: 0


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