求助,#10 MLE,但是本地运行没错
查看原帖
求助,#10 MLE,但是本地运行没错
842408
pangyuchen75楼主2023/12/24 12:15

代码:

#include <cstdio>
#define N 10005
#define M 10005
using namespace std;

int n;
int f[N][M];
int x;

void bemax(int &a, int b, int c) {
	a = b > c ? b : c;
}

void _plus(int a, int b, int c) {
	bemax(f[a][0], f[b][0], f[c][0]);
	x = 0;
	
	for(int i = 1; i <= f[a][0]; ++i) {
		f[a][i] = f[b][i] + f[c][i] + x;
		x = f[a][i] / 10;
		f[a][i] %= 10;
	}
	
	if(x)
		f[a][++f[a][0]] = x;
}

int main() {
	scanf("%d", &n);
	
	f[1][0] = 1;
	f[1][1] = 1;
	f[2][0] = 1;
	f[2][1] = 2;
	
	for(int i = 3; i <= n; ++i)
		_plus(i, i - 1, i - 2);
	
	for(int i = f[n][0]; i > 0; --i)
		printf("%d", f[n][i]);
	puts("");
	
	return 0;
}

另附 #10 数据:

输入:
5000
输出:
6276302800488957086035253108349684055478528702736457439025824448927937256811663264475883711527806250329984690249846819800648580083040107584710332687596562185073640422286799239932615797105974710857095487342820351307477141875012176874307156016229965832589137779724973854362777629878229505500260477136108363709090010421536915488632339240756987974122598603591920306874926755600361865354330444681915154695741851960071089944015319300128574107662757054790648152751366475529121877212785489665101733755898580317984402963873738187000120737824193162011399200547424034440836239726275765901190914513013217132050988064832024783370583789324109052449717186857327239783000020791777804503930439875068662687670678802914269784817022567088069496231111407908953313902398529655056082228598715882365779469902465675715699187225655878240668599547496218159297881601061923195562143932693324644219266564617042934227893371179832389642895285401263875342640468017378925921483580111278055044254198382265567395946431803304304326865077742925818757370691726168228648841319231470626

提交结果

2023/12/24 12:15
加载中...