提交记录 13289


用户 题目 状态 得分 用时 内存 语言 代码长度
ZYF_B 1002i. 【模板题】多项式乘法 Accepted 100 76.602 ms 129156 KB C++ 1.53 KB
提交时间 评测时间
2020-08-01 09:52:15 2020-08-01 09:52:19
#include<bits/stdc++.h>
#define ll long long
#define re register
#define INF 2147483647
using namespace std;

inline int read()
{
	int f=1,x=0;char s=getchar();
	while(s<'0'||s>'9')
	{
		if(s=='-') f=-1;
		s=getchar();
	}
	while(s>='0'&&s<='9')
	{
		x=x*10+s-48;
		s=getchar();
	}
	return f*x;
}

const int N=1350000;
const double pi=acos(-1);

struct CP
{
	double x,y;
	CP(double xx=0,double yy=0){x=xx,y=yy;}	
}f[N<<1],g[N<<1],ans[N<<1];

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

int rev_len,n,m;
int rev[N<<1];

void getrev(int n)
{
	if(rev_len==n) return;
	rev_len=n;
	for(int i=0;i<n;i++)
		rev[i]=(rev[i>>1]>>1)|((i&1)?n>>1:0); 
}

void FFT(CP *f,bool flag,int len)
{
	getrev(len);
	for(int i=0;i<len;i++)
		if(i<rev[i]) swap(f[i],f[rev[i]]);
	for(int p=1;p<len;p<<=1)
	{
		CP w(cos(pi/p),sin(pi/p));
		if(!flag) w.y*=-1;
		for(int k=0;k<len;k+=(p<<1))
		{
			CP buf(1,0);
			for(int i=k;i<k+p;i++)
			{
				CP tmp=buf*f[i+p];
				f[i+p]=f[i]-tmp;
				f[i]=f[i]+tmp;
				buf=buf*w;
			}	
		} 
	}
	if(!flag) for(int i=0;i<len;i++) f[i].x/=len;
}

void times(CP *f,CP *g,CP *ans,int n,int m)
{
	int len=1;
	for(;len<=m+n;len<<=1);
	FFT(f,1,len),FFT(g,1,len);
	for(int i=0;i<len;i++) ans[i]=f[i]*g[i];
	FFT(ans,0,len);
}

int main()
{
	n=read(),m=read();
	for(int i=0;i<=n;i++) f[i].x=read();
	for(int i=0;i<=m;i++) g[i].x=read();
	times(f,g,ans,n,m);
	for(int i=0;i<=n+m;i++) printf("%d ",(int)(ans[i].x+0.5));
	return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #113.921 ms123 MB + 648 KBAcceptedScore: 0

Subtask #1 Testcase #276.275 ms126 MB + 52 KBAcceptedScore: 0

Subtask #1 Testcase #341.514 ms124 MB + 416 KBAcceptedScore: 100

Subtask #1 Testcase #442.342 ms124 MB + 404 KBAcceptedScore: 0

Subtask #1 Testcase #513.846 ms123 MB + 648 KBAcceptedScore: 0

Subtask #1 Testcase #614.224 ms123 MB + 648 KBAcceptedScore: 0

Subtask #1 Testcase #714.295 ms123 MB + 648 KBAcceptedScore: 0

Subtask #1 Testcase #871.37 ms125 MB + 808 KBAcceptedScore: 0

Subtask #1 Testcase #971.031 ms125 MB + 808 KBAcceptedScore: 0

Subtask #1 Testcase #1065.873 ms125 MB + 540 KBAcceptedScore: 0

Subtask #1 Testcase #1176.592 ms126 MB + 132 KBAcceptedScore: 0

Subtask #1 Testcase #1276.602 ms125 MB + 12 KBAcceptedScore: 0

Subtask #1 Testcase #1313.848 ms123 MB + 648 KBAcceptedScore: 0


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