60pts求调

P11228 [CSP-J 2024] 地图探险

CN0202deXP @ 2024-11-17 02:26:19

前两点tle后两点wa其余ac

#include <bits/stdc++.h>
using  namespace std;
int s[10]={1,0,-1,0,0,1,0,-1};
char maps[1004][1004];
bool chk[1004][1004];
void slove(){
    std::ios::sync_with_stdio(false);
    std::cin.tie(0);
    std::cout.tie(0);
    int n,m,k,x,y,d;
    int i,j;
    int ans=1;
    memset(maps,'x',sizeof(maps));
    memset(chk,false,sizeof(chk));
    cin>>n>>m>>k;
    cin>>x>>y>>d;
    chk[y][x]=true;
    for(i=1;i<=n;i++){
        for(j=1;j<=m;j++){
            cin>>maps[j][i];
        }
    }
    for(j=y,i=x;k>0;k--){
        while(maps[j+s[d]][i+s[d+4]]=='x'){
            d=(d+1)%4;
            k--;
        }
        j+=s[d];
        i+=s[d+4];
        if(chk[j][i]==false){
            chk[j][i]=true;
            ans++;
        }
    }
    cout<<ans<<'\n';
    return;
}
int main(){
    std::ios::sync_with_stdio(false);
    std::cin.tie(0);
    std::cout.tie(0);
    int n;
    cin>>n;
    for(int i=0;i<n;i++){
        slove();
    }
    return 0;
}

by wangshengchen @ 2024-11-17 08:22:51

@CN0202deXP

#include<iostream>
using namespace std;
const int N=1e3+10;
int t,n,m,k,x,y,d,ans,d2[4][2]={{0,1},{1,0},{0,-1},{-1,0}};//d是方向 
string s;
int main(){
    ios::sync_with_stdio(0); 
    cin.tie(0);
    cin>>t;
    while(t--){
        cin>>n>>m>>k>>x>>y>>d;
        char map[N][N]={};
        bool vis[N][N]={};
        for(int i=1;i<=n;i++){
            cin>>s;//用字符串输入快 
            int len=s.size();
            for(int j=0;j<len;j++) map[i][j+1]=s[j];//存到字符数组里 
        }
        ans=1;//起点也有一步
        vis[x][y]=1;//判断走过的(可能有重复的) 
        while(k--){
            int nx=d2[d][0]+x,ny=d2[d][1]+y;//现在的x,y坐标 
            if(nx>0&&nx<n+1&&ny>0&&ny<m+1&&map[nx][ny]!='x'){//判断可不可以走 
                x=nx;
                y=ny;
                if(!vis[nx][ny]){//加个数
                    vis[nx][ny]=1;
                    ans++; 
                }
            }
            else d=(d+1)%4;
        }
        cout<<ans<<"\n";
    }
    return 0;
}

by wangshengchen @ 2024-11-17 08:25:07

@CN0202deXP

else d=(d+1)%4;//转向

by CN0202deXP @ 2024-11-17 23:51:17

@wangshengchen 谢谢佬(双手合十)


by wangshengchen @ 2024-11-18 16:53:09

@CN0202deXP 求关


|