提交记录 13932


用户 题目 状态 得分 用时 内存 语言 代码长度
GetAWrongAnswer 1002i. 【模板题】多项式乘法 Accepted 100 54.884 ms 5160 KB C++ 1.61 KB
提交时间 评测时间
2020-08-13 16:32:10 2020-08-13 16:32:15
#include<bits/stdc++.h>
using namespace std;

typedef double db;
typedef long long ll;
typedef unsigned long long ull;
typedef pair <int,int> Pii;
#define reg register
#define mp make_pair
#define pb push_back
#define Mod1(x) ((x>=P)&&(x-=P))
#define Mod2(x) ((x<0)&&(x+=P))
#define rep(i,a,b) for(int i=a,i##end=b;i<=i##end;++i)
#define drep(i,a,b) for(int i=a,i##end=b;i>=i##end;--i)
template <class T> inline void cmin(T &a,T b){ ((a>b)&&(a=b)); }
template <class T> inline void cmax(T &a,T b){ ((a<b)&&(a=b)); }

char IO;
template <class T=int> T rd(){
	T s=0; int f=0;
	while(!isdigit(IO=getchar())) if(IO=='-') f=1;
	do s=(s<<1)+(s<<3)+(IO^'0');
	while(isdigit(IO=getchar()));
	return f?-s:s;
}

const int N=1<<18,P=998244353;

int n,m;
ll qpow(ll x,ll k=P-2){
	ll res=1;
	for(;k;k>>=1,x=x*x%P) if(k&1) res=res*x%P;
	return res;
}
int a[N],b[N],w[N],rev[N],e[N];
void NTT(int n,int *a,int f){
	rep(i,1,n-1) if(i<rev[i]) swap(a[i],a[rev[i]]);
	e[0]=1;
	for(int i=1;i<n;i<<=1) {
		int w=qpow(3,(P-1)/i/2);
		for(int j=1;j<i;++j) e[j]=1ll*e[j-1]*w%P;
		//for(int j=i-2;j>=0;j-=2) e[j+1]=1ll*w*(e[j]=e[j>>1])%P;
		//这个版本是沿用上一次预处理的结果
		for(int l=0;l<n;l+=i*2) {
			for(int j=l;j<l+i;++j) {
				int t=1ll*a[j+i]*e[j-l]%P;
				a[j+i]=a[j]-t,((a[j+i]<0)&&(a[j+i]+=P));
				a[j]+=t,((a[j]>=P)&&(a[j]-=P));
			}
		}
	}
	if(f==-1) {
		reverse(a+1,a+n);
		int Inv=qpow(n);
		rep(i,0,n-1) a[i]=1ll*a[i]*Inv%P;
	}
}

int main(){
	rep(i,0,N-1) rev[i]=(rev[i>>1]>>1)|((i&1)*(N>>1));
	n=rd(),m=rd();
	rep(i,0,n) a[i]=rd();
	rep(i,0,m) b[i]=rd();
	NTT(N,a,1),NTT(N,b,1);
	rep(i,0,N-1) a[i]=1ll*a[i]*b[i]%P;
	NTT(N,a,-1);
	rep(i,0,n+m) printf("%d ",a[i]);
}







CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #124.458 ms3 MB + 556 KBAcceptedScore: 0

Subtask #1 Testcase #254.531 ms4 MB + 984 KBAcceptedScore: 0

Subtask #1 Testcase #337.771 ms3 MB + 836 KBAcceptedScore: 100

Subtask #1 Testcase #437.813 ms3 MB + 824 KBAcceptedScore: 0

Subtask #1 Testcase #524.505 ms3 MB + 556 KBAcceptedScore: 0

Subtask #1 Testcase #624.487 ms3 MB + 556 KBAcceptedScore: 0

Subtask #1 Testcase #724.46 ms3 MB + 556 KBAcceptedScore: 0

Subtask #1 Testcase #849.229 ms4 MB + 716 KBAcceptedScore: 0

Subtask #1 Testcase #949.212 ms4 MB + 716 KBAcceptedScore: 0

Subtask #1 Testcase #1043.947 ms4 MB + 448 KBAcceptedScore: 0

Subtask #1 Testcase #1154.884 ms5 MB + 40 KBAcceptedScore: 0

Subtask #1 Testcase #1254.807 ms3 MB + 944 KBAcceptedScore: 0

Subtask #1 Testcase #1324.456 ms3 MB + 556 KBAcceptedScore: 0


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