提交记录 5431


用户 题目 状态 得分 用时 内存 语言 代码长度
chen_zhe 1002i. 【模板题】多项式乘法 Accepted 100 115.979 ms 18968 KB C++ 1.61 KB
提交时间 评测时间
2018-08-22 18:30:35 2020-08-01 00:17:07
// luogu-judger-enable-o2
#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 #18.85 us28 KBAcceptedScore: 0

Subtask #1 Testcase #2115.611 ms18 MB + 456 KBAcceptedScore: 100

Subtask #1 Testcase #350.716 ms8 MB + 820 KBAcceptedScore: 0

Subtask #1 Testcase #450.153 ms8 MB + 808 KBAcceptedScore: 0

Subtask #1 Testcase #510.06 us28 KBAcceptedScore: 0

Subtask #1 Testcase #69.3 us28 KBAcceptedScore: 0

Subtask #1 Testcase #79.13 us28 KBAcceptedScore: 0

Subtask #1 Testcase #8110.286 ms18 MB + 188 KBAcceptedScore: 0

Subtask #1 Testcase #9110.05 ms18 MB + 188 KBAcceptedScore: 0

Subtask #1 Testcase #10104.729 ms17 MB + 944 KBAcceptedScore: 0

Subtask #1 Testcase #11115.859 ms18 MB + 536 KBAcceptedScore: 0

Subtask #1 Testcase #12115.979 ms17 MB + 416 KBAcceptedScore: 0

Subtask #1 Testcase #137.8 us28 KBAcceptedScore: 0


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