求助,自己运行可以通过但为什么MLE了

P1010 [NOIP1998 普及组] 幂次方

递归层数太多
by CBW2007 @ 2020-02-24 10:41:23


(理论上也不多啊)
by CBW2007 @ 2020-02-24 10:41:57


手动打表 ``` string a[15]={"2(0)","2","2(2)","2(2+2(0))","2(2(2))","2(2(2)+2(0))","2(2(2)+2)","2(2(2)+2+2(0))","2(2(2+2(0)))","2(2(2+2(0))+2(0))","2(2(2+2(0))+2)","2(2(2+2(0))+2+2(0))","2(2(2+2(0))+2(2))","2(2(2+2(0))+2(2)+2(0))","2(2(2+2(0))+2(2)+2)"}; ```
by lndjy @ 2020-02-24 10:47:20


@[CBW2007](/user/60178) 但是为什么自己运行是可以得出答案的
by yinhan @ 2020-02-24 10:51:55


``` #include<stdio.h> #include<string.h> int a[32][35]; void print(int x,int round) { int k=x,key=0,count=0; if(x==0 || x==2) { printf("2(%d)",x); return ; } if(x==1) { printf("2"); return ; } if(x>2) { memset(a[round],0,sizeof(a[round])); key=0; while(k!=0) { a[round][key++]=k%2; k/=2; if(a[round][key-1]==1) { count++; } } for(int i=key-1;i>=0;i--) { if(a[round][i]==1) { if(i>2) { printf("2("); print(i,round+1); printf(")"); } else { print(i,round+1); } if(count>1) { printf("+"); count--; } } } } } int main() { int n; scanf("%d",&n); print(n,1); return 0; } ```
by yinhan @ 2020-02-24 10:52:36


@[yinhan](/user/248005) 之前的代码发错了
by yinhan @ 2020-02-24 10:52:55


@[CBW2007](/user/60178) 对不起,我提交的时候把错误代码提交了,正确的没有错。。。
by yinhan @ 2020-02-24 10:54:40


@[yinhan](/user/248005) MLE是内存超了,和答案没有关系
by 百因必有AC @ 2020-08-18 17:45:39


|