地图探险题解
查看原帖
地图探险题解
1435354
dengyuxi66楼主2024/11/7 20:28
#include <bits/stdc++.h>
using namespace std;
int a[1100][1100],see[1100][1100],x2[4]={0,1,0,-1},y2[4]={1,0,-1,0};
int n,m,x,y,d,k,t,ans=1;
char b;
int main() {
	//freopen("1.out","w",stdout);
    cin>>t;
    while(t--){
    	cin>>n>>m>>k>>x>>y>>d;
    	for (int i=1;i<=n;i++)for (int j=1;j<=m;j++){
    		cin>>b;
    		if (b=='.')a[i][j]=1;
		}
		see[x][y]=1;
		for (int i=1;i<=k;i++){
			if (a[x+x2[d]][y+y2[d]]==1){
				x+=x2[d];
				y+=y2[d];
				if (see[x][y]==0){
					see[x][y]=1;
					ans++;
				}
			}
			else d++;
			if (d==4)d=0;
		}
		for (int i=1;i<=n;i++)for (int j=1;j<=m;j++){
			a[i][j]=0;
			see[i][j]=0;
		}
		cout<<ans<<endl;
		ans=1;
	}
 return 0;
}
2024/11/7 20:28
加载中...