提交记录 11355


用户 题目 状态 得分 用时 内存 语言 代码长度
chc_1234567890 1002i. 【模板题】多项式乘法 Accepted 100 66.947 ms 12356 KB C++ 1.36 KB
提交时间 评测时间
2019-12-07 11:57:16 2020-08-01 02:42:39
#include<bits/stdc++.h>
using namespace std;
typedef vector<int> poly;
const int maxn=270003;
const double pi=acos(-1);
struct com{
	double r,i;
	com(){}
	com(double _r,double _i):r(_r),i(_i){}
	com operator+(const com &x)const{return com(r+x.r,i+x.i);}
	com operator-(const com &x)const{return com(r-x.r,i-x.i);}
	com operator*(const com &x)const{return com(r*x.r-i*x.i,r*x.i+i*x.r);}
}k1[maxn],k2[maxn];
int r[maxn];
void fft(com a[],int n,int sgn){
	for(int i=0;i<n;i++)if(r[i]>i)swap(a[i],a[r[i]]);
	for(int mid=1;mid<n;mid<<=1){
		com wn(cos(pi/mid),sgn*sin(pi/mid));
		for(int j=0;j<n;j+=(mid<<1)){
			com w(1,0);
			for(int k=0;k<mid;k++,w=w*wn){
				com tmp=w*a[j+k+mid];
				a[j+k+mid]=a[j+k]-tmp;
				a[j+k]=a[j+k]+tmp;
			}
		}
	}
}
poly operator*(const poly &a,const poly &b){
	int n1=a.size()-1,n2=b.size()-1,lg=0,n=1;
	while(n<=n1+n2)lg++,n<<=1;
	for(int i=0;i<n;i++)r[i]=(r[i>>1]>>1)|((i&1)<<(lg-1));
	for(int i=0;i<=n1;i++)k1[i].r=a[i];
	for(int i=0;i<=n2;i++)k2[i].r=b[i];
	fft(k1,n,1);
	fft(k2,n,1);
	for(int i=0;i<n;i++)k1[i]=k1[i]*k2[i];
	fft(k1,n,-1);
	poly ret(n1+n2+1);
	for(int i=0;i<=n1+n2;i++)ret[i]=k1[i].r/n+0.5;
	return ret;
}
int main(){
	int n,m;
	scanf("%d%d",&n,&m);
	poly a(n+1),b(m+1);
	for(int i=0;i<=n;i++)scanf("%d",&a[i]);
	for(int i=0;i<=m;i++)scanf("%d",&b[i]);
	a=a*b;
	a.resize(n+m+1);
	for(int i=0;i<a.size();i++)printf("%d ",a[i]);
	return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #137.79 us48 KBAcceptedScore: 0

Subtask #1 Testcase #266.247 ms11 MB + 1012 KBAcceptedScore: 100

Subtask #1 Testcase #329.499 ms5 MB + 596 KBAcceptedScore: 0

Subtask #1 Testcase #429.62 ms5 MB + 584 KBAcceptedScore: 0

Subtask #1 Testcase #540.03 us48 KBAcceptedScore: 0

Subtask #1 Testcase #639.26 us48 KBAcceptedScore: 0

Subtask #1 Testcase #738.03 us48 KBAcceptedScore: 0

Subtask #1 Testcase #860.829 ms11 MB + 476 KBAcceptedScore: 0

Subtask #1 Testcase #960.261 ms11 MB + 476 KBAcceptedScore: 0

Subtask #1 Testcase #1054.603 ms10 MB + 960 KBAcceptedScore: 0

Subtask #1 Testcase #1166.314 ms12 MB + 68 KBAcceptedScore: 0

Subtask #1 Testcase #1266.947 ms10 MB + 972 KBAcceptedScore: 0

Subtask #1 Testcase #1336.53 us48 KBAcceptedScore: 0


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