提交记录 8526


用户 题目 状态 得分 用时 内存 语言 代码长度
suika 1002i. 【模板题】多项式乘法 Accepted 100 74.885 ms 5168 KB C++ 1.61 KB
提交时间 评测时间
2019-02-22 21:09:55 2020-08-01 01:20:16
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cstdlib>
using namespace std;
typedef long long ll;
#define mod 998244353
#define N 400050
int mem[N*20],*ptr=mem;
int qp(int x,int y) {int re=1;for(;y;y>>=1,x=ll(x)*x%mod)if(y&1)re=ll(re)*x%mod; return re;}
int INV(int x) {return qp(x,mod-2);}
void ntt(int *a,int len,int flg) {
	int i,j,k,t,tmp,w,wn;
	for(i=k=0;i<len;i++) {
		if(i>k) swap(a[i],a[k]);
		for(j=len>>1;(k^=j)<j;j>>=1) ;
	}
	for(k=2;k<=len;k<<=1) {
		wn=qp(3,(mod-1)/k);
		t=k>>1; 
		if(flg==-1) wn=INV(wn);
		for(i=0;i<len;i+=k) {
			w=1;  
			for(j=i;j<i+t;j++) {
				tmp=ll(a[j+t])*w%mod;
				a[j+t]=(a[j]-tmp)%mod; 
				a[j]=(a[j]+tmp)%mod; 
				w=ll(w)*wn%mod;
			}
		}
	}
	if(flg==-1) for(tmp=INV(len),i=0;i<len;i++) a[i]=ll(a[i])*tmp%mod;
}
int A[N],B[N];
struct shion {
	int *a,len;
	shion() {}
	shion(int l) {len=l,a=ptr,ptr+=l;}
	void fix(int l) {len=l,a=ptr,ptr+=l;}
	shion operator * (const shion &u) const {
		shion re(len+u.len-1);
		int i,l=1,j;
		if(re.len<=100) {
			for(i=0;i<len;i++)for(j=0;j<u.len;j++) {
				re.a[i+j]=(re.a[i+j]+ll(a[i])*u.a[j])%mod;
			}return re;
		}
		while(l<len+u.len)l<<=1;
		memset(A,0,sizeof(int)*l);
		memset(B,0,sizeof(int)*l);
		for(i=0;i<len;i++) A[i]=a[i];
		for(i=0;i<u.len;i++) B[i]=u.a[i];
		ntt(A,l,1),ntt(B,l,1);
		for(i=0;i<l;i++) A[i]=ll(A[i])*B[i]%mod;
		ntt(A,l,-1);
		for(i=0;i<re.len;i++) re.a[i]=A[i];
		return re;
	}
};
int n,m;
int main() {
	scanf("%d%d",&n,&m);n++,m++;
	int i;
	shion a(n),b(m);
	for(i=0;i<n;i++) scanf("%d",&a.a[i]);
	for(i=0;i<m;i++) scanf("%d",&b.a[i]);
	shion c=a*b;
	for(i=0;i<n+m-1;i++) printf("%d ",(c.a[i]+mod)%mod);
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #18.25 us20 KBAcceptedScore: 0

Subtask #1 Testcase #274.564 ms4 MB + 992 KBAcceptedScore: 0

Subtask #1 Testcase #334.409 ms2 MB + 60 KBAcceptedScore: 100

Subtask #1 Testcase #434.45 ms2 MB + 48 KBAcceptedScore: 0

Subtask #1 Testcase #510 us20 KBAcceptedScore: 0

Subtask #1 Testcase #69.14 us20 KBAcceptedScore: 0

Subtask #1 Testcase #710.04 us20 KBAcceptedScore: 0

Subtask #1 Testcase #868.649 ms4 MB + 452 KBAcceptedScore: 0

Subtask #1 Testcase #968.859 ms4 MB + 452 KBAcceptedScore: 0

Subtask #1 Testcase #1062.915 ms3 MB + 940 KBAcceptedScore: 0

Subtask #1 Testcase #1174.767 ms5 MB + 48 KBAcceptedScore: 0

Subtask #1 Testcase #1274.885 ms3 MB + 952 KBAcceptedScore: 0

Subtask #1 Testcase #138.74 us20 KBAcceptedScore: 0


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