提交记录 13295


用户 题目 状态 得分 用时 内存 语言 代码长度
hxb 1002i. 【模板题】多项式乘法 Accepted 100 79.047 ms 127604 KB C++ 1.28 KB
提交时间 评测时间
2020-08-01 10:00:53 2020-08-01 10:00:57
#include<bits/stdc++.h>
using namespace std;
const double pi=acos(-1);
int read()
{
	char x=getchar();int ans=0;
	while(!isdigit(x)) x=getchar();
	while(isdigit(x)) ans=ans*10+x-'0',x=getchar();
	return ans;
}
struct comp
{
	double x,y;
	comp(double _x=0,double _y=0)
	{
		x=_x,y=_y;
	}
}f[4000005],g[4000005];
int r[4000005],n,m;
comp operator+(comp a,comp b)
{
	return comp(a.x+b.x,a.y+b.y);
}
comp operator-(comp a,comp b)
{
	return comp(a.x-b.x,a.y-b.y);
}
comp operator*(comp a,comp b)
{
	return comp(a.x*b.x-a.y*b.y,a.x*b.y+a.y*b.x);
}
void fft(comp *f,int len,int flag)
{
	for (int i=0;i<len;i++)
		if (i<r[i]) swap(f[i],f[r[i]]);
	for (int mid=1;mid<len;mid<<=1)
	{
		comp tmp=comp(cos(pi/mid),flag*sin(pi/mid));
		for (int rr=mid<<1,j=0;j<len;j+=rr)
		{
			comp tmpp=comp(1,0);
			for (int k=0;k<mid;k++,tmpp=tmpp*tmp)
			{
				comp x=f[j+k],y=tmpp*f[j+mid+k];
				f[j+k]=x+y;
				f[j+mid+k]=x-y;
			}
		}
	}
}
int main()
{
	cin>>n>>m;
	for (int i=0;i<=n;i++)
		scanf("%lf",&f[i].x);
	for (int i=0;i<=m;i++)
		scanf("%lf",&g[i].x);
	int nn=1,cntt=0;
	while(nn<=n+m) nn<<=1,cntt++;
	for (int i=0;i<nn;i++)
		r[i]=(r[i>>1]>>1)|((i&1)<<(cntt-1));
	fft(f,nn,1);fft(g,nn,1);
	for (int i=0;i<=nn;i++)
		f[i]=f[i]*g[i];
	fft(f,nn,-1);
	for (int i=0;i<=n+m;i++)
		printf("%d ",(int)(f[i].x/nn+0.5));
	return 0;
}

CompilationN/AN/ACompile OKScore: N/A

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

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

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

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

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

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

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

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

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

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

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

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

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


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