MLE求调!!!
查看原帖
MLE求调!!!
1365062
Deric456楼主2024/8/31 13:03
#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;
}
2024/8/31 13:03
加载中...