40分求救,必关
查看原帖
40分求救,必关
832324
Thomas_Shaosiyuan楼主2025/2/5 22:03
#include<bits/stdc++.h>
using namespace std;
int T, n,m,k, vis[1010][1010],x0,yu,d0;
char c[1010][1010];
int nx[4]={0,1,0,-1};
int ny[4]={1,0,-1,0};
int main(){
    cin>>T;
    for(int i=1;i<=T;i++){
    int bushu=0;
        memset(vis,0,sizeof(vis));
        cin>>n>>m>>k;
        cin>>x0>>yu>>d0;
        vis[x0][yu]=2;
        for(int u=1;u<=n;u++)
            for(int v=1;v<=m;v++){
                cin>>c[u][v];
                if(c[u][v]=='x')
                vis[u][v]=1;
            }
    
        while(bushu<k){
            int wx=x0+nx[d0],wy=yu+ny[d0];
            if(wy>=1&&wy<=m&&wx>=1&&wx<=n&&vis[wx][wy]==0){
                vis[wx][wy]=2;
                x0=wx;yu=wy;
            }else{
                d0=(d0+1)%4;
            }
            bushu++;
        }            
        int ans=0;
        for(int r=1;r<=n;r++)
            for(int f=1;f<=m;f++){
                if(vis[r][f]==2)ans++;
            }
        cout<<ans<<endl;
    }
    return 0;
}

40分,样例不过,求救大佬

2025/2/5 22:03
加载中...