提交记录 5909


用户 题目 状态 得分 用时 内存 语言 代码长度
AThousandMoon 1002i. 【模板题】多项式乘法 Accepted 100 73.802 ms 6680 KB C++ 1.43 KB
提交时间 评测时间
2018-09-06 18:31:23 2020-08-01 00:36:11
#include<cstdio>
#define Rint register int
using namespace std;
typedef long long LL;
const int P = 998244353, MAXN = 1 << 19, G = 3, Gi = 332748118;
LL a[MAXN], b[MAXN];
int n, m, limit, L, R[MAXN];
inline void swap(LL &a, LL &b){
    LL t = a;a = b;b = t;
}
inline LL kasumi(LL a, LL b){
    LL res = 1;
    while(b){
        if(b & 1) res = res * a % P;
        a = a * a % P;
        b >>= 1;
    }
    return res;
}
inline void NTT(LL *A, int type){
    for(Rint i = 0;i < limit;i ++)
        if(i < R[i]) swap(A[i], A[R[i]]);
    for(Rint mid = 1;mid < limit;mid <<= 1){
        LL Wn = kasumi(type == 1 ? G : Gi, (P - 1) / (mid << 1));
        for(Rint j = 0;j < limit;j += mid << 1){
            LL w = 1;
            for(Rint k = 0;k < mid;k ++, w = w * Wn % P){
                LL x = A[j + k], y = w * A[j + k + mid] % P;
                A[j + k] = (x + y) % P;
                A[j + k + mid] = (x - y + P) % P;
            }
        }
    }
}
int main(){
    scanf("%d%d", &n, &m);
    for(Rint i = 0;i <= n;i ++) scanf("%lld", a + i);
    for(Rint i = 0;i <= m;i ++) scanf("%lld", b + i);
    for(L = -1, limit = 1;limit <= n + m;limit <<= 1, L ++);
    for(Rint i = 0;i < limit;i ++)
        R[i] = (R[i >> 1] >> 1) | ((i & 1) << L);
    NTT(a, 1);NTT(b, 1);
    for(Rint i = 0;i < limit;i ++)
        a[i] = a[i] * b[i] % P;
    NTT(a, -1);
    LL inv = kasumi(limit, P - 2);
    for(Rint i = 0;i <= n + m;i ++)
        printf("%lld ", a[i] * inv % P);
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #110.22 us28 KBAcceptedScore: 0

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

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

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

Subtask #1 Testcase #511.57 us28 KBAcceptedScore: 0

Subtask #1 Testcase #611.64 us28 KBAcceptedScore: 0

Subtask #1 Testcase #710.32 us28 KBAcceptedScore: 0

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

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

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

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

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

Subtask #1 Testcase #139.06 us28 KBAcceptedScore: 0


Judge Duck Online | 评测鸭在线
Server Time: 2024-04-26 23:20:09 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用