罗非鱼Requiem @ 2021-12-05 15:49:02
新思路,二维数组,先乘完储存,最后再加,求助,小数据能过,大数据出错,编译运行没问题,谢谢各位大佬!!!
#include <cmath>
#include <vector>
#include <string>
#include <bits/stdc++.h>
using namespace std;
int S[10007][10007], S1[10005], S2[10005], sum[10010], s=0;
string s1, s2;
int main() {
cin >> s1 >> s2;
for(int i=0;i<s1.length();i++)
S1[i] = s1.at(s1.length()-i-1)-'0';
for(int i=0;i<s2.length();i++)
S2[i] = s2.at(s2.length()-i-1)-'0';
int len = s1.length()+s2.length();
for(int i=0;i<=len;i++)
{
for(int j=0;j<=len;j++)
{
S[i][j+i] = S1[j]*S2[i] + s;
s = S[i][j+i]/10;
S[i][j+i] %= 10;
}
}
for(int i=0;i<=len;i++) {
for(int j=0;j<=len;j++)
sum[j] += S[i][j];
}
for(int i=0;i<=len;i++) {
if(sum[i]/10 != 0) {
sum[i] %= 10;
sum[i+1]++;
}
}
int index=len;
while(sum[index]==0)
index--;
for(int i=index;i>=0;i--)
cout << sum[i];
if(index<0)
cout << 0;
return 0;
}
by Buried_Dream @ 2021-12-05 15:55:10
你这二维数组不炸空间吗
by 罗非鱼Requiem @ 2021-12-19 15:18:40
@TLE_Automation 会输出一个数字,位数约等于正确答案,可以正常编译运行(至少我电脑和学校电脑可以)
by 罗非鱼Requiem @ 2021-12-19 15:20:13
错误出在答案上,大数据没溢出,答案错了,而小数据完全没问题
by 罗非鱼Requiem @ 2021-12-19 15:24:11
结果是 AC WA WA WA WA 运行为100ms以内与100mb以内