提交记录 9625


用户 题目 状态 得分 用时 内存 语言 代码长度
lzoilxy 1002i. 【模板题】多项式乘法 Accepted 100 83.382 ms 190076 KB C++ 1.49 KB
提交时间 评测时间
2019-06-20 22:19:32 2020-08-01 01:41:36
#include<algorithm>
#include<cstdio>
#include<cmath>
using namespace std;
const double PI=acos(-1);
int n,m,s,sl,fh,len,f[6000010];
struct node
{
    double x,y;
    node(double _x=0,double _y=0) {x=_x,y=_y;}
}a[6000010],b[6000010];
node operator -(node k1,node k2)
{
    return node(k1.x-k2.x,k1.y-k2.y);
}
node operator +(node k1,node k2)
{
    return node(k1.x+k2.x,k1.y+k2.y);
}
node operator *(node k1,node k2)
{
    return node(k1.x*k2.x-k1.y*k2.y,k1.x*k2.y+k1.y*k2.x);
}
int rd()
{
    sl=0;fh=1;
    char ch=getchar();
    while(ch<'0'||'9'<ch) {if(ch=='0') fh=-1; ch=getchar();}
    while('0'<=ch&&ch<='9') sl=sl*10+ch-'0',ch=getchar();
    return sl*fh;
}
void FFT(node *e,double k)
{
    for(int i=0;i<=s;++i)
        if(i<f[i])
            swap(e[i],e[f[i]]);
    node fx,fy;
    for(int i=2,mid=1;i<=s;i<<=1,mid<<=1)
    {
        node wn(cos(2.0*PI/i),k*sin(2.0*PI/i));
        for(int j=0;j<s;j+=i)
        {
            node t(1,0);
            for(int k=j;k<j+mid;k++,t=t*wn)
            {
                fx=e[k],fy=t*e[k+mid];
                e[k]=fx+fy;
                e[k+mid]=fx-fy;
            }
        }
    }
}
int main()
{
    n=rd()+1;m=rd()+1;
    for(int i=0;i<n;++i) a[i].x=rd();
    for(int i=0;i<m;++i) b[i].x=rd();
    s=1;
    while(s<n+m) s<<=1,len++;
    for(int i=0;i<=s;++i) f[i]=(f[i>>1]>>1)|((i&1)<<len-1);
    FFT(a,1);FFT(b,1);
    for(int i=0;i<=s;++i) a[i]=a[i]*b[i];
    FFT(a,-1);
    for(int i=0;i<n+m-1;++i) printf("%d ",(int)(a[i].x/s+0.5));
    puts("");
    return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #120.468 ms183 MB + 128 KBAcceptedScore: 0

Subtask #1 Testcase #281.025 ms185 MB + 556 KBAcceptedScore: 100

Subtask #1 Testcase #348.996 ms183 MB + 920 KBAcceptedScore: 0

Subtask #1 Testcase #447.879 ms183 MB + 908 KBAcceptedScore: 0

Subtask #1 Testcase #521.142 ms183 MB + 128 KBAcceptedScore: 0

Subtask #1 Testcase #620.532 ms183 MB + 128 KBAcceptedScore: 0

Subtask #1 Testcase #721.268 ms183 MB + 128 KBAcceptedScore: 0

Subtask #1 Testcase #875.485 ms185 MB + 288 KBAcceptedScore: 0

Subtask #1 Testcase #975.635 ms185 MB + 288 KBAcceptedScore: 0

Subtask #1 Testcase #1069.955 ms185 MB + 20 KBAcceptedScore: 0

Subtask #1 Testcase #1181.271 ms185 MB + 636 KBAcceptedScore: 0

Subtask #1 Testcase #1283.382 ms184 MB + 516 KBAcceptedScore: 0

Subtask #1 Testcase #1320.462 ms183 MB + 128 KBAcceptedScore: 0


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