提交记录 16673


用户 题目 状态 得分 用时 内存 语言 代码长度
hhwdd 1002i. 【模板题】多项式乘法 Accepted 100 75.122 ms 4652 KB C++ 1.24 KB
提交时间 评测时间
2021-10-10 14:33:22 2021-10-10 14:33:26
#include<bits/stdc++.h>
using namespace std;

const int NR = 1e5 + 10, P = 998244353, G = 3, GI = 332748118;

int l1, l2, a[NR << 2], b[NR << 2], rev[NR << 2];
int dig = 0, lim = 1;

int qp(int a, int b) {
	int ret = 1;
	while (b) {
		if (b & 1) ret = 1ll * ret * a % P;
		a = 1ll * a * a % P;
		b >>= 1;
	}
	return ret;
}

void NTT(int *a, int opt) {
	for (int i = 0; i < lim; i++) if (i < rev[i]) swap(a[i], a[rev[i]]);
	for (int i = 1; i < lim; i <<= 1) {
		int t = qp(opt == -1 ? GI : G, (P - 1) / (i << 1));
		for (int j = 0; j < lim; j += (i << 1)) {
			for (int k = 0, w = 1; k < i; k++, w = 1ll * w * t % P) {
				int tx = a[j + k], ty = 1ll * w * a[i + j + k] % P;
				a[j + k] = (tx + ty) % P;
				a[i + j + k] = (tx - ty + P ) % P;
			}
		}
	}
}
int main()
{
	cin >> l1 >> l2;
	for (int i = 0; i <= l1; i++) cin >> a[i];
	for (int i = 0; i <= l2; i++) cin >> b[i];
	while (lim <= l1 + l2) lim <<= 1, dig++;
	for (int i = 0; i < lim; i++) rev[i] = (rev[i >> 1] >> 1) | ((i & 1) << (dig - 1));
	
	NTT(a, 1), NTT(b, 1);
	for (int i = 0; i < lim; i++) a[i] = 1ll * a[i] * b[i] % P;
	NTT(a, -1);
	int inv = qp(lim, P - 2);
	for (int i = 0; i <= l1 + l2; i++) a[i] = 1ll * a[i] * inv % P;
	
	for (int i = 0; i <= l1 + l2; i++) cout << a[i] << ' ';
	
	return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #138.56 us48 KBAcceptedScore: 0

Subtask #1 Testcase #275.122 ms4 MB + 476 KBAcceptedScore: 0

Subtask #1 Testcase #334.939 ms1 MB + 840 KBAcceptedScore: 100

Subtask #1 Testcase #434.924 ms1 MB + 828 KBAcceptedScore: 0

Subtask #1 Testcase #540.08 us48 KBAcceptedScore: 0

Subtask #1 Testcase #639.25 us48 KBAcceptedScore: 0

Subtask #1 Testcase #739.78 us48 KBAcceptedScore: 0

Subtask #1 Testcase #869.233 ms4 MB + 208 KBAcceptedScore: 0

Subtask #1 Testcase #969.213 ms4 MB + 208 KBAcceptedScore: 0

Subtask #1 Testcase #1063.336 ms3 MB + 964 KBAcceptedScore: 0

Subtask #1 Testcase #1174.615 ms4 MB + 556 KBAcceptedScore: 0

Subtask #1 Testcase #1272.008 ms3 MB + 436 KBAcceptedScore: 0

Subtask #1 Testcase #1336.55 us48 KBAcceptedScore: 0


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