提交记录 8552


用户 题目 状态 得分 用时 内存 语言 代码长度
OI_berbi 1002i. 【模板题】多项式乘法 Accepted 100 48.164 ms 9528 KB C++ 1.39 KB
提交时间 评测时间
2019-02-24 20:39:19 2020-08-01 01:21:07
#pragma GCC optimize(3)
#include <bits/stdc++.h>
#define For(a,b,c) for(register int a=b;a<=c;++a)
using namespace std;
namespace FFT {
	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],W[N];
	int R[N];
	void DFT(cp *a,int n,int p){
	    For(i,0,n-1) if(i<R[i]) swap(a[i],a[R[i]]);
	    W[0]=(cp){1,0};
	    for(register int i=1;i<n;i<<=1){
	        cp wn=(cp){cos(pi/i),p*sin(pi/i)};
	        for(register int j=i-2;j>=0;j-=2) W[j+1]=wn*(W[j]=W[j>>1]);
	        for(register int j=0;j<n;j+=i<<1){
	            cp *p=a+j,*q=a+i+j;
	            For(k,0,i-1){
	                cp x=W[k]*q[k];
	                q[k]=p[k]-x;
	                p[k]=p[k]+x;
	            }
	        }
	    }
    }
	void Mul (int *_A,int a,int *_B,int b) {
		int n=(1<<(int)log2(a+b)<<1);
		For(i,0,n-1) R[i]=(R[i>>1]>>1)|((i&1)*(n>>1));
		For(i,0,a-1) A[i].x=_A[i];
		For(i,0,b-1) A[i].y=_B[i];
		DFT(A,n,1);
		For(i,0,n-1) A[i]=A[i]*A[i];
		DFT(A,n,-1);
		For(i,0,n-1) _A[i]=A[i].y/n/2+0.5;
	}
}
using FFT::Mul;

const int N=100007;
int A[N],B[N],a,b;
int main () {
	scanf("%d%d",&a,&b),++a,++b;
	For(i,0,a-1) scanf("%d",&A[i]);
	For(i,0,b-1) scanf("%d",&B[i]);
	Mul(A,a,B,b);
	For(i,0,a+b-2) printf("%d ",A[i]);
	return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #137.24 us56 KBAcceptedScore: 0

Subtask #1 Testcase #247.648 ms9 MB + 232 KBAcceptedScore: 100

Subtask #1 Testcase #321.228 ms4 MB + 596 KBAcceptedScore: 0

Subtask #1 Testcase #421.214 ms4 MB + 200 KBAcceptedScore: 0

Subtask #1 Testcase #540.37 us56 KBAcceptedScore: 0

Subtask #1 Testcase #638.54 us56 KBAcceptedScore: 0

Subtask #1 Testcase #738.46 us56 KBAcceptedScore: 0

Subtask #1 Testcase #842.083 ms8 MB + 988 KBAcceptedScore: 0

Subtask #1 Testcase #941.812 ms8 MB + 860 KBAcceptedScore: 0

Subtask #1 Testcase #1036.44 ms8 MB + 592 KBAcceptedScore: 0

Subtask #1 Testcase #1148.164 ms9 MB + 312 KBAcceptedScore: 0

Subtask #1 Testcase #1248.047 ms8 MB + 192 KBAcceptedScore: 0

Subtask #1 Testcase #1337.63 us56 KBAcceptedScore: 0


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