Aborted / IOT trap.
  • 板块学术版
  • 楼主konyakest
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/7/17 11:24
  • 上次更新2023/10/27 19:54:50
查看原帖
Aborted / IOT trap.
482660
konyakest楼主2022/7/17 11:24

rt。

这道题 本机(win 7)运行正常,但提交就RE,并且弹出了 Runtime Error. Received signal 6: Aborted / IOT trap. 这个神奇的提示信息

代码:

// Problem: P1018 [NOIP2000 提高组] 乘积最大
// Contest: Luogu
// URL: https://www.luogu.com.cn/problem/P1018
// Memory Limit: 125 MB
// Time Limit: 1000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

#include <bits/stdc++.h>
using namespace std;
#define F(i,j,k) for (signed i=signed(j);i<=signed(k);i++)
#define endl '\n'
//#define int long long
struct bigint{
	vector<int> v;
	bigint(){v.push_back(0);}
	bigint(vector<int> _v){v=_v;}
	bigint(int x){v.push_back(0);while(x) v.push_back(x%10),x/=10;}
	void print(){
		for(int i=v.size()-1;i>=1;i--) cout<<v[i];
		if(v.size()==1) cout<<0;
	}
	bigint operator +(bigint _b){
		vector<int> b=_b.v;
		if(v.size()<b.size()) swap(v,b);
		vector<int> ans=v;
		int x=0;
		F(i,1,b.size()-1) {
			ans[i]+=b[i]+x;
			x=ans[i]/10;
			ans[i]%=10;
		}
		if(x) ans.push_back(x);
		return ans;
	}
	bigint operator *(bigint _b){
		vector<int> b=_b.v;
		vector<int> ans(v.size()+b.size());
		F(i,1,v.size()-1) F(j,1,b.size()-1) ans[i+j-1]+=v[i]*b[j];
		F(i,1,ans.size()-2) ans[i+1]+=ans[i]/10,ans[i]%=10;
		while(ans.back()==0) ans.pop_back();
		if(ans.size()==0) ans.push_back(0);
		return ans;
	}
};
bool operator <(bigint a,bigint b){
	if(a.v.size()!=b.v.size()) return a.v.size()<b.v.size();
	for(int i=a.v.size();i>=1;i--) if(a.v[i]!=b.v[i]) return a.v[i]<b.v[i];
	return 0;
}
bigint stolll(string s){
	bigint a=0;
	F(i,0,s.size()-1) a=a*10+(int)(s[i]-'0');
	return a;
}
int n,k;
string s;
bigint dp[45][45];

main() { 
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>n>>k>>s;
	F(i,1,n) dp[i][0]=stolll(s.substr(0,i));
	F(i,1,n) F(j,1,i-1) F(o,j,i-1) 
		dp[i][j]=max(dp[i][j],dp[o][j-1]*stolll(s.substr(o,i-o)));
	dp[n][k].print();
	return 0; 
}
2022/7/17 11:24
加载中...