why?

P11228 [CSP-J 2024] 地图探险

Zhao114 @ 2024-11-05 12:41:25

为什么这题ccf零分,洛谷就AC了? 代码如下

#include <iostream>
#include <cstdio>
using namespace std;
char M[10000][10000];
long long book[10000][10000],nex[4][2] = {{0,1},{1,0},{0,-1},{-1,0}},n,m,k;
void df(long long x,long long y,long long d,long long step){
    long long i,nx,ny;
    book[x][y] = 1;
    if(step == 0){
        return;
    }
    nx = x + nex[d][0];
    ny = y + nex[d][1];
    if(nx > 0 && nx <= n && ny > 0 && ny <= m){
        if(M[nx][ny] == '.'){
            df(nx,ny,d,step-1);
            return;
        }
    }
    d = (d+1)%4;
    df(x,y,d,step-1);
    return;
}
int main(){
    freopen("explore.in","r",stdin);
    freopen("explore.out","w",stdout);
    long long i,t,x,y,d,j,o,ans = 0;
    cin>>t;
    for(i = 1;i <= t;i++){
        ans = 0;
        cin>>n>>m>>k;
        cin>>x>>y>>d;
        for(j = 1;j <= n;j++){
            for(o = 1;o <= m;o++){
                cin>>M[j][o];
            }
        }
        df(x,y,d,k);
        for(j = 1;j <= n;j++){
            for(o = 1;o <= m;o++){
                if(book[j][o] == 1){
                    book[j][o] = 0;
                    ans++;
                }
            }
        }
        cout<<ans<<endl;
    }
    fclose(stdin);
    fclose(stdout);
    return 0;
}

by SuperAlex4 @ 2024-11-05 12:43:22

MLE


by Zhao114 @ 2024-11-05 12:45:56

洛谷AC了 @SuperAlex4


by SuperAlex4 @ 2024-11-05 12:46:30

@Zhao114 洛谷跟 CCF 的内存计算方式不太一样,洛谷是用多少算多少


by rainygame @ 2024-11-05 12:48:13

@Zhao114 Luogu 和 CCF 评测方式不同。

Luogu 是你只开数组但是不使用不消耗很多内存。

CCF 是你每开的一个字节(不管你有没有使用)都算进内存里。


|