社区讨论

MLE求调!!!

题目总版参与者 3已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@m0hoqwfk
此快照首次捕获于
2024/08/31 13:11
2 年前
此快照最后确认于
2025/11/04 21:57
4 个月前
查看原帖

是MLE(内存),不是TLE(超时)

CPP
#include<bits/stdc++.h>
using namespace std;
string jf(string a,string b){
	string u="";
	int lena=a.length();
	int lenb=b.length();
	int a1[100000]={},b1[100000]={},c1[100000]={};
	for(int i=0;i<lena;i++){
		a1[lena-1-i]=a[i]-'0';
	}
	for(int i=0;i<lenb;i++){
		b1[lenb-1-i]=b[i]-'0';
	}
	int lenc=max(lena,lenb);
	int i=0,i2;
	for(;i<=lenc;i++){
		c1[i]+=(a1[i]+b1[i]);
		c1[i+1]=c1[i]/10;
		c1[i]%=10;
	}
	for(;c1[i]==0;i--);
	i2=i;
	for(;i2>=0;i2--){
		u.append(to_string(c1[i2]));
	}
	return u;
}
string cf(string a,string b){
	string u;
	int lena=a.length();
	int lenb=b.length();
	int a1[100000]={},b1[100000]={},c1[100000]={};
	for(int i=0;i<lena;i++){
		a1[lena-1-i]=a[i]-'0';
	}
	for(int i=0;i<lenb;i++){
		b1[lenb-1-i]=b[i]-'0';
	}
	for(int i=0;i<lena;i++){
		for(int j=0;j<lenb;j++){
			c1[i+j]+=a1[i]*b1[j];
			c1[i+j+1]+=c1[i+j]/10;//进位
			c1[i+j]%=10;
		}
	}
	int i=lena+lenb,i2;
	for(;c1[i]==0;i--);
	i2=i;
	for(;i2>=0;i2--){
		u.append(to_string(c1[i2]));
	}
	return u;
}
int main(){
	int n;
	cin>>n;
	string b1="0";
	string a[n]={"6"},b[n]={};
	for(int i=1;i<n;i++){
		a[i]=a[i-1];
		a[i].append("6");
	}
	for(int i=0;i<n;i++){
		b[i]=cf(a[i],a[i]);
	}
	for(int i=0;i<n;i++){
		b1=jf(b1,b[i]);
	}
	cout<<b1;
	return 0;
}

回复

6 条回复,欢迎继续交流。

正在加载回复...