WA求调
查看原帖
WA求调
705058
BGM114514楼主2024/7/29 21:56

不知为何RE,故求调

#include<bits/stdc++.h>
using namespace std;
struct BigInt{
	int a[105];
	int len;
	BigInt(string s="0"){
		memset(a,0,sizeof(a));
		len=s.size();
		for(int i=1;i<=len;i++){
			a[i]=s[len-i]-'0';
		}
	}
	BigInt cut(const int& l,const int& r){
		BigInt res;
		res.len=r-l+1;
		for(int i=1;i<=res.len;i++){
			res.a[i]=a[r-i+1];
		}
		return res;
	}
	void out(){
		for(int i=len;i>0;i--){
			cout<<a[i];
		}
	}
	friend BigInt operator*(const BigInt &a,const BigInt &b){
		BigInt res;
		res.len=a.len+b.len;
		for(int i=1;i<=a.len;i++){
			for(int j=1;j<=b.len;j++){
				res.a[i*j]+=a.a[i]*b.a[j];
			}
		}
		for(int i=1;i<=res.len;i++){
			res.a[i+1]+=res.a[i]/10;
			res.a[i]%=10;
		}
		for(;res.a[res.len]==0&&res.len>1;res.len--);
		return res;
	}
	friend bool operator<(const BigInt &a,const BigInt &b){
		if(a.len<b.len)return 1;
		if(a.len>b.len)return 0;
		for(int i=1;i<=a.len;i++){
			if(a.a[i]<b.a[i])return 1;
			if(a.a[i]>b.a[i])return 0;
		}
		return 0;
	}
}dp[100][10];
int n,k;
BigInt str;
int main(){
	cin>>n>>k;
	string s;
	cin>>s;
	str=s;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=i;j++)dp[i][0].a[dp[i][0].len++]=str.a[j];
		dp[i][0].len--;
	}
	for(int i=2;i<=n;i++){
		for(int j=1;j<=min(i-1,k);j++){
			for(int l=j;l<i;l++){
				dp[i][j]=max(dp[i][j],dp[l][j-1]*str.cut(l+1,i));
			}
		}
	}
	dp[n][k].out();
    return 0;
}
2024/7/29 21:56
加载中...