50求调
查看原帖
50求调
1277996
mc2djwh楼主2024/10/26 23:03

丸辣!!!大jx160还有机会1=吗

#include <bits/stdc++.h>
using namespace std;
int main(){
    int T;
    cin>>T;
    while(T--){
        int n,m,k,x,y,d,ans=1;
        cin>>n>>m>>k>>x>>y>>d;
        char a[n][m];
        bool vis[n][m]={};
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                cin>>a[i][j];
            }
        }
        x--,y--;
        vis[x][y]=1;
        while(--k){
            if(d==0){
                if(y+1<m&&a[x][y+1]=='.'){
                    if(!vis[x][y+1]){
                        ans++;
                        vis[x][y+1]=1;
                    }
                    y++;
                }else{
                    d=1;
                }
            }
            if(d==1){
                if(x+1<n&&a[x+1][y]=='.'){
                    if(!vis[x+1][y]){
                        ans++;
                        vis[x+1][y]=1;
                    }
                    x++;
                }else{
                    d=2;
                }
            }
            if(d==2){
                if(y-1>=0&&a[x][y-1]=='.'){
                    if(!vis[x][y-1]){
                        ans++;
                        vis[x][y-1]=1;
                    }
                    y--;
                }else{
                    d=3;
                }
            }
            if(d==3){
                if(x-1>=0&&a[x-1][y]=='.'){
                    if(!vis[x-1][y]){
                        ans++;
                        vis[x-1][y]=1;
                    }
                    x--;
                }else{
                    d=0;
                }
            }
        }
        cout<<ans<<endl;
    }
    return 0;
}
2024/10/26 23:03
加载中...