提交记录 13846


用户 题目 状态 得分 用时 内存 语言 代码长度
OI_berbi 1002i. 【模板题】多项式乘法 Accepted 100 48.731 ms 12212 KB C++ 1.19 KB
提交时间 评测时间
2020-08-12 22:18:44 2020-08-12 22:18:49
#pragma GCC optimize(3)
#include<bits/stdc++.h>
#define For(a,b,c) for(register int a=b;a<=c;++a)
using namespace std;
const int N=270000;
const double pi=acos(-1);
struct cp {
	double x,y;
	cp operator + (const cp &_) {return (cp){x+_.x,y+_.y};}
	cp operator - (const cp &_) {return (cp){x-_.x,y-_.y};}
	cp operator * (const cp &_) {return (cp){x*_.x-y*_.y,x*_.y+y*_.x};}
}A[N],B[N],O[N];
int s,R[N],F[N],G[N],a,b;
void DFT(cp *A,int o=0) {
	For(i,0,s-1) if(i<R[i]) swap(A[i],A[R[i]]);
	for(register int i=1;i<s;i<<=1)
		for(register int j=0;j<s;j+=i<<1) {
			cp *W=O+i,*P=A+j,*Q=A+j+i;
			For(k,0,i-1) {
				cp x=W[k]*Q[k];
				Q[k]=P[k]-x;
				P[k]=P[k]+x;
			}
		}
	if(o) {
		reverse(A+1,A+s);
	}
}
int main () {
	scanf("%d%d",&a,&b),++a,++b;
	For(i,0,a-1) scanf("%d",&F[i]);
	For(i,0,b-1) scanf("%d",&G[i]);
	s=1; while(s<a+b-1) s<<=1;
	cp w=(cp){cos(2*pi/s),sin(2*pi/s)};
	O[s>>1]=(cp){1,0};
	for(int i=(s>>1)+1;i<s;++i) O[i]=O[i-1]*w;
	for(int i=(s>>1)-1;i>0;--i) O[i]=O[i<<1];
	For(i,0,s-1) R[i]=(R[i>>1]>>1)|((i&1)*(s>>1));
	For(i,0,a-1) A[i].x=F[i];
	For(i,0,b-1) A[i].y=G[i];
	DFT(A);
	For(i,0,s-1) A[i]=A[i]*A[i];
	DFT(A,1);
	For(i,0,s-1) F[i]=A[i].y/s/2+0.5;
	For(i,0,a+b-2) printf("%d ",F[i]);
	return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #137.92 us56 KBAcceptedScore: 0

Subtask #1 Testcase #248.041 ms11 MB + 868 KBAcceptedScore: 100

Subtask #1 Testcase #321.352 ms5 MB + 720 KBAcceptedScore: 0

Subtask #1 Testcase #421.367 ms5 MB + 320 KBAcceptedScore: 0

Subtask #1 Testcase #540.52 us56 KBAcceptedScore: 0

Subtask #1 Testcase #637.56 us56 KBAcceptedScore: 0

Subtask #1 Testcase #738.11 us56 KBAcceptedScore: 0

Subtask #1 Testcase #842.453 ms11 MB + 600 KBAcceptedScore: 0

Subtask #1 Testcase #942.619 ms11 MB + 468 KBAcceptedScore: 0

Subtask #1 Testcase #1036.777 ms11 MB + 200 KBAcceptedScore: 0

Subtask #1 Testcase #1148.731 ms11 MB + 948 KBAcceptedScore: 0

Subtask #1 Testcase #1248.565 ms10 MB + 828 KBAcceptedScore: 0

Subtask #1 Testcase #1336.27 us56 KBAcceptedScore: 0


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