3 条题解

  • 0
    @ 2024-11-10 10:33:10
    #include<bits/stdc++.h>
    using namespace std;
    int dx[]={0,1,0,-1};
    int dy[]={1,0,-1,0};
    char mp[1100][1100];
    bool vis[1100][1100]; 
    int main(){
    	int t;
    	cin>>t;
    	while(t--){
    		memset(vis,0,sizeof vis);
    		memset(mp,0,sizeof mp);
    		int n,m,k,x,y,d;
    		cin>>n>>m>>k>>x>>y>>d;
    		for(int i=1;i<=n;i++)
    			for(int j=1;j<=m;j++)
    				cin>>mp[i][j];
    			
    		int step=1;
    		vis[x][y]=1;
    		while(k--){
    			int tx=x+dx[d],ty=y+dy[d];
    			if(mp[tx][ty]=='.'){
    				if(vis[tx][ty]==0)
    					step++,vis[tx][ty]=1;
    				x=tx,y=ty;
    			}else{
    				d=(d+1)%4;
    			}
    		}
    		cout<<step<<endl;
    	}
    	                         
    	return 0;
    } 
    

    信息

    ID
    2314
    时间
    1000ms
    内存
    256MiB
    难度
    5
    标签
    (无)
    递交数
    47
    已通过
    20
    上传者