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 是你每开的一个字节(不管你有没有使用)都算进内存里。