!!!大佬们,全都TLE了,怎么改能过!!!只能学FFT吗?
查看原帖
!!!大佬们,全都TLE了,怎么改能过!!!只能学FFT吗?
1528611
Happiness_3楼主2024/11/7 20:14
#include <bits/stdc++.h>
using namespace std;
#define ll int
const ll N = 1e6 + 10;
char s1[N], s2[N];
ll a[N], b[N], c[N];


signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
	cin >> s1 >> s2;

	ll la = strlen(s1);
	ll lb = strlen(s2);

	for (ll i = 0; i < la; ++i) {
		a[la - i] = s1[i] - '0';
	}
	for (ll i = 0; i < lb; ++i) {
		b[lb - i] = s2[i] - '0';
	}

	ll lc = la + lb;
	
	for (ll i = 1; i <= la; i++) {
		for (ll j = 1; j <= lb; j++) {
			c[i + j - 1] += a[i] * b[j];
			c[i + j] += c[i + j - 1] / 10;
			c[i + j - 1] %= 10;
		}
	}

	if (c[lc] == 0 && lc > 0) lc--;

	for (ll i = lc; i >= 1; i--) {
		cout << c[i];
	}
	cout << endl;
	return 0;
}
2024/11/7 20:14
加载中...