提交记录 13365


用户 题目 状态 得分 用时 内存 语言 代码长度
S1rius 1002i. 【模板题】多项式乘法 Accepted 100 64.456 ms 127604 KB C++ 1.57 KB
提交时间 评测时间
2020-08-01 11:53:46 2020-08-01 11:53:51
#include<bits/stdc++.h>
using namespace std;
typedef double ld;
ld const pi=acos(-1),eps=1e-3;
struct comp
{
    ld a,b;
    friend comp operator + (const comp &x,const comp &y)
    {
        return (comp){x.a+y.a,x.b+y.b};
    }
    friend comp operator - (const comp &x,const comp &y)
    {
        return (comp){x.a-y.a,x.b-y.b};
    }
    friend comp operator * (const comp &x,const comp &y)
    {
        return (comp){x.a*y.a-x.b*y.b,x.a*y.b+x.b*y.a};
    }
    comp(double x=0,double y=0){a=x;b=y;}
}a[4000001],w[4000001];
int r[4000001];
void init(int n)
{
    int lim=1;
    while(lim<n)lim<<=1;
    for(int i=1;i<lim;i<<=1)
    {
        comp wn=comp(cos(pi/i),sin(pi/i)),ww=comp(1,0);
        for(int j=0;j<i;j++,ww=ww*wn)w[i+j]=ww;
    }
}
void fft(comp *f,int n,int op)
{
    for(int i=1;i<n;i++)if(i<r[i])swap(f[i],f[r[i]]);
    for(int i=1;i<n;i<<=1)
    for(int j=0;j<n;j+=i<<1)
        for(int k=0;k<i;k++)
        {
            comp x=f[j+k],y=f[j+k+i]*w[i+k];
            f[j+k+i]=x-y;
            f[j+k]=x+y;
        }
    if(op==-1)
    {
        reverse(&f[1],&f[n]);
        for(int i=0;i<n;i++)f[i]=f[i]*comp(0.5/n,0);
    }
}
int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    for(register int i=0;i<=n;++i)scanf("%lf",&a[i].a);
    for(register int i=0;i<=m;++i)scanf("%lf",&a[i].b);
    m+=n,n=1;
    while(n<=m)n<<=1;
    for(register int i=0;i<n;++i)
        r[i]=(r[i>>1]>>1)|((i&1)?(n>>1):0);
    init(n);
    fft(a,n,1);
    for(register int i=0;i<n;++i)a[i]=a[i]*a[i];
    fft(a,n,-1);
    for(register int i=0;i<=m;++i)printf("%d ",(int)(fabs(a[i].b)+eps));
    return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #114.412 ms122 MB + 120 KBAcceptedScore: 0

Subtask #1 Testcase #264.096 ms124 MB + 548 KBAcceptedScore: 0

Subtask #1 Testcase #336.767 ms122 MB + 912 KBAcceptedScore: 100

Subtask #1 Testcase #436.759 ms122 MB + 900 KBAcceptedScore: 0

Subtask #1 Testcase #513.672 ms122 MB + 120 KBAcceptedScore: 0

Subtask #1 Testcase #613.679 ms122 MB + 120 KBAcceptedScore: 0

Subtask #1 Testcase #713.669 ms122 MB + 120 KBAcceptedScore: 0

Subtask #1 Testcase #858.41 ms124 MB + 280 KBAcceptedScore: 0

Subtask #1 Testcase #958.639 ms124 MB + 280 KBAcceptedScore: 0

Subtask #1 Testcase #1052.467 ms124 MB + 12 KBAcceptedScore: 0

Subtask #1 Testcase #1164.262 ms124 MB + 628 KBAcceptedScore: 0

Subtask #1 Testcase #1264.456 ms123 MB + 508 KBAcceptedScore: 0

Subtask #1 Testcase #1314.176 ms122 MB + 120 KBAcceptedScore: 0


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