警钟敲烂

P11228 [CSP-J 2024] 地图探险

SSdWJJ @ 2024-11-04 21:39:42

C++不能用y0作为变量名,否则会CE

贴主就是这样爆零的


by SSdWJJ @ 2024-11-04 21:40:35

j0 j1 jn y0 y1 都不可以!


by Ayyo_Listen_Up @ 2024-11-04 21:42:55

我用y0了但没事(可能跟我头文件有关?)


by linnaeuss @ 2024-11-04 21:47:32

@hhhc_ark 局部变量y0没事


by SSdWJJ @ 2024-11-04 21:47:56

@hhhc_ark 我直接用的万能头

教练说能用万能头尽量用,有些头文件windows有但是linux没有


by Ayyo_Listen_Up @ 2024-11-04 21:51:24

@linnaeuss 原来如此


by Ayyo_Listen_Up @ 2024-11-04 21:51:54

@SSdWJJ 我用了iostream和string


by luyufan @ 2024-11-04 21:54:19

x1


by SSdWJJ @ 2024-11-04 21:56:09

我的源代码:

#include<bits/stdc++.h>
using namespace std;
const int dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};
int T,n,m,k,x0,y0,d0,nowx,nowy,nowd,ans;
char mp[1010][1010];
bool vis[1010][1010];
int main(){
    freopen("explore.in","r",stdin);
    freopen("explore.out","w",stdout);

    cin>>T;
    while(T--){
        cin>>n>>m>>k;
        cin>>x0>>y0>>d0;
        ans=0;
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++){
                cin>>mp[i][j];
                vis[i][j]=0;
            }
        nowx=x0,nowy=y0,nowd=d0;
        while(k--){
            if(vis[nowx][nowy]==0) vis[nowx][nowy]=1,ans++;
            int nx=nowx+dx[nowd],ny=nowy+dy[nowd];
            if(nx<1||nx>n||ny<1||ny>m||mp[nx][ny]=='x') nowd=(nowd+1)%4;
            else nowx=nx,nowy=ny;
        }
        if(vis[nowx][nowy]==0) vis[nowx][nowy]=1,ans++;
        cout<<ans<<endl;
    }
    return 0;
}

可惜的是我用的全局变量


by Azure_Space @ 2024-11-04 22:04:37

@SSdWJJ 你是因为x0爆零的吧


by SSdWJJ @ 2024-11-04 22:05:10

@Azure_Space 编译出来是因为y0爆的


| 下一页