40求助
查看原帖
40求助
1492409
ykx1926楼主2024/10/26 21:25
#include<bits/stdc++.h> 
using namespace std;
char a[1010][1010];
int t,n,m,k,x,y,d,b,cs;
int fx[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
int main()
{
	cin>>t;
	for(int tt=0;tt<t;tt++){
		cin>>n>>m>>k>>x>>y>>d;
		
		
		for(int i=0;i<=n+1;i++){ 
			for(int j=0;j<=m+1;j++){
				if(i==0||i>n||j==0||j>m){
					a[i][j]='x';
					continue;
				}
				cin>>a[i][j];
			}
		}
		cs=0;
		a[x][y]='a';
		cs++;
		b=0;
		
		
		for(int i=1;i<=n;++i){
			for(int j=1;j<=m;j++){
				if(b==k) break;
				if(a[x+fx[d][0]][y+fx[d][1]]=='x'){
					d=(d+1)%4;//转向 
					b++;
					continue;
				}
				if(a[x+fx[d][0]][y+fx[d][1]]=='.'){
					a[x][y]='a';
					x=x+fx[d][0];
					y=y+fx[d][1];
					cs++;
					b++;
					continue;
				}
				if(a[x+fx[d][0]][y+fx[d][1]]=='a'){
					x=x+fx[d][0];
					y=y+fx[d][1];
					b++;
					continue;
				}
			}
		}
		cout<<cs<<endl;
	}
    return 0;
}
2024/10/26 21:25
加载中...