提交记录 7145


用户 题目 状态 得分 用时 内存 语言 代码长度
Deep_Kevin 1002i. 【模板题】多项式乘法 Accepted 100 65.588 ms 10892 KB C++ 1.26 KB
提交时间 评测时间
2018-12-26 19:33:44 2020-08-01 01:00:33
// luogu-judger-enable-o2
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
using namespace std;

int n,m;
struct complex{
	double x,y;
	complex operator+(complex a)const {return (complex){x+a.x,y+a.y};}
	complex operator-(complex a)const {return (complex){x-a.x,y-a.y};}
	complex operator*(complex a)const {return (complex){x*a.x-y*a.y,x*a.y+y*a.x};}
}a[3000010],b[3000010];
int lim=1,l=0;
int where[3000010];
double co[3000010],si[3000010];
const double Pi=acos(-1.0)*2.0;
complex wn,w,fa,fb;

void dft(complex *now,int idft){
	for(int i=0;i<lim;i++) if(where[i]>i) swap(now[i],now[where[i]]);
	complex wn,w,a,b;
	for(int l=2;l<=lim;l*=2){
		wn=(complex){cos(Pi/l),idft*sin(Pi/l)};
		for(int i=0;i<lim;i+=l){
			w=(complex){1,0};
			for(int x=i,y=i+l/2;y<i+l;x++,y++,w=w*wn){
				a=now[x],b=now[y]*w;
				now[x]=a+b;
				now[y]=a-b;
			}
		}
	}
}

int main(){
	scanf("%d %d",&n,&m);n++;m++;
	for(int i=0;i<n;i++) scanf("%lf",&a[i].x);
	for(int i=0;i<m;i++) scanf("%lf",&b[i].x);
	while(lim<n+m-1) lim*=2,l++,co[lim]=cos(Pi/lim),si[lim]=sin(Pi/lim);
	for(int i=0;i<lim;i++) where[i]=((where[i>>1]>>1) | ((i&1)<<(l-1)));
	dft(a,1);dft(b,1);
	for(int i=0;i<lim;i++) a[i]=a[i]*b[i];
	dft(a,-1);
	for(int i=0;i<n+m-1;i++) printf("%d ",(int)(a[i].x/lim+0.5));
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #138.05 us64 KBAcceptedScore: 0

Subtask #1 Testcase #265.218 ms10 MB + 572 KBAcceptedScore: 100

Subtask #1 Testcase #329.988 ms4 MB + 928 KBAcceptedScore: 0

Subtask #1 Testcase #430.048 ms4 MB + 916 KBAcceptedScore: 0

Subtask #1 Testcase #541.2 us64 KBAcceptedScore: 0

Subtask #1 Testcase #638.92 us64 KBAcceptedScore: 0

Subtask #1 Testcase #738.89 us64 KBAcceptedScore: 0

Subtask #1 Testcase #859.304 ms10 MB + 304 KBAcceptedScore: 0

Subtask #1 Testcase #959.329 ms10 MB + 304 KBAcceptedScore: 0

Subtask #1 Testcase #1053.509 ms10 MB + 36 KBAcceptedScore: 0

Subtask #1 Testcase #1165.588 ms10 MB + 652 KBAcceptedScore: 0

Subtask #1 Testcase #1265.38 ms9 MB + 532 KBAcceptedScore: 0

Subtask #1 Testcase #1337.04 us60 KBAcceptedScore: 0


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