提交记录 5430


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

using namespace std;

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;

const long double PI=acos(-1.0);

struct Complex
{
    long double x,y;
}a[4200000],b[4200000];

Complex operator + (Complex a,Complex b)
{
    return {a.x+b.x,a.y+b.y};
}

Complex operator - (Complex a,Complex b)
{
    return {a.x-b.x,a.y-b.y};
}

Complex operator * (Complex a,Complex b)
{
    return {a.x*b.x-a.y*b.y,a.x*b.y+a.y*b.x};
}

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

void FFT(Complex *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)
    {
        Complex Wn={cos(PI/mid),type*sin(PI/mid)};
        for (int j=0;j<lim;j+=(mid<<1))
        {
            Complex W={1,0};
            for (int k=0;k<mid;k++)
            {
                Complex x=A[j+k],y=W*A[j+mid+k];
                A[j+k]=x+y;
                A[j+mid+k]=x-y;
                W=W*Wn;	
            } 
        }
    }
}

int main()
{
    n=read();m=read();
    for (int i=0;i<=n;i++)
        a[i].x=read();
    for (int i=0;i<=m;i++)
        b[i].x=read();
    while (lim<=n+m)
    {
        lim<<=1;
        l++;
    }
    for (int i=0;i<lim;i++)
        r[i]=(r[i>>1]>>1)|((i&1)<<(l-1));
    FFT(a,1);
    FFT(b,1);
    for (int i=0;i<=lim;i++)
        a[i]=a[i]*b[i];
    FFT(a,-1);
    for (int i=0;i<=n+m;i++)
        printf("%d ",(int)(a[i].x/lim+0.5));
    return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #136.32 us48 KBAcceptedScore: 0

Subtask #1 Testcase #2116.335 ms18 MB + 476 KBAcceptedScore: 0

Subtask #1 Testcase #351.009 ms8 MB + 840 KBAcceptedScore: 100

Subtask #1 Testcase #450.325 ms8 MB + 828 KBAcceptedScore: 0

Subtask #1 Testcase #538.65 us48 KBAcceptedScore: 0

Subtask #1 Testcase #636.95 us48 KBAcceptedScore: 0

Subtask #1 Testcase #736.88 us48 KBAcceptedScore: 0

Subtask #1 Testcase #8110.98 ms18 MB + 208 KBAcceptedScore: 0

Subtask #1 Testcase #9110.886 ms18 MB + 208 KBAcceptedScore: 0

Subtask #1 Testcase #10105.4 ms17 MB + 964 KBAcceptedScore: 0

Subtask #1 Testcase #11116.561 ms18 MB + 556 KBAcceptedScore: 0

Subtask #1 Testcase #12116.741 ms17 MB + 436 KBAcceptedScore: 0

Subtask #1 Testcase #1335.28 us48 KBAcceptedScore: 0


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