0
已解决

Memory Limit Exceeded 是啥意思,该怎么解决?
我的代码:1099
#include<bits/stdc++.h>
int s1[9][9],a,b,w,h,x,y,n;
void gc(int a,int b,int hp,int m) {
if(hp!=0) {
if(s1[a][b]==3) {
if((m<n)||(n==0)) n=m;
} else {
if(s1[a][b]==4) hp=6;
if(s1[a-1][b]!=0) gc(a-1,b,hp-1,m+1);
if(s1[a+1][b]!=0) gc(a+1,b,hp-1,m+1);
if(s1[a][b-1]!=0) gc(a,b-1,hp-1,m+1);
if(s1[a][b+1]!=0) gc(a,b+1,hp-1,m+1);
}
}
}
int main() {
scanf("%d %d",&w,&h);
for(a=1; a<=h; a++)
for(b=1; b<=w; b++) {
scanf("%d",&s1[a][b]);
if(s1[a][b]==2) x=a;
y=b;
}
for(a=0; a<=w; a++) {
s1[0][a]=0;
s1[h+1][a]=0;
}
for(a=0; a<=h; a++) {
s1[a][0]=0;
s1[a][w+1]=0;
}
gc(x,y,6,0);
printf("%d",n);
return 0;
}
0
已采纳
Memory Limit Exceeded
你的程序爆内存了!
using namespace std没打!(话说没打不是CE吗?)
栾峻岩在2018-10-27 13:24:36追加了内容
震惊!using namespace std加了之后还是MLE!

0
0
0
Memory limit exceeded=程序内存超过上限
1.不要定义万能头!
2.不要套过多循环
至于怎么改,我也不晓得,总而言之,言而总之,精简一下就好了!
(ps:这是我这辈子第一次看见这种问题)

0
0
0
0

