问题标题: 酷町堂:测试点#1 测评结果 : Memory Limit Exceeded 是啥意思,该怎么解决?

0
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
方宇哲
方宇哲
资深守护
资深守护

你这个内存太大了!

爆了

方宇哲在2018-10-25 13:17:03追加了内容

改代码呀!!!

0
0
周天睿
周天睿
初级光能
初级光能

Memory limit exceeded=程序内存超过上限

1.不要定义万能头!

2.不要套过多循环

至于怎么改,我也不晓得,总而言之,言而总之,精简一下就好了!

(ps:这是我这辈子第一次看见这种问题)

0
0
0
0
我要回答