求调60
查看原帖
求调60
775591
Yzc10729楼主2024/10/29 21:46
#include<bits/stdc++.h>

using namespace std;

char a[10001][10001];

set<int> mmap;
  
int main(){
  
		int t;
	cin>>t;
	for(int p=1;p<=t;p++){
		memset(a,0,sizeof a);
		mmap.clear();
		int n,m,k;
		cin>>n>>m>>k;
		int x,y,d;
		cin>>x>>y>>d;
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++){
				cin>>a[i][j];
			}
		}
		int cnt=1;
		mmap.insert(x*10+y);
		for(int i=1;i<=k;i++){
			if(x>=1&&x<=n&&y>=1&&y<=m&&a[x][y]=='.'){
				if(d==1){
					if(x+1<1||x+1>n||y<1||y>m||a[x+1][y]=='x'){
						d=d+1;
						d%=4; 
					}else{
						x+=1;
						cnt++;
						int c=x*10+y;
						mmap.insert(c);
					}
				}else if(d==2){
					if(x<1||x>n||y-1<1||y-1>m||a[x][y-1]=='x'){
						d=d+1;
						d%=4; 

					}else{
						y-=1;
						cnt++;
						int c=x*10+y;
						mmap.insert(c);
					}
				}else if(d==3){
					if(x-1<1||x-1>n||y<1||y>m||a[x-1][y]=='x'){
						d=d+1;
						d%=4; 
					}else{
						x-=1;
						cnt++;
						int c=x*10+y;
						mmap.insert(c);
					}
				}else if(d==0){
					if(x<1||x>n||y+1<1||y+1>m||a[x][y+1]=='x'){
						d=d+1;
						d%=4; 
					}else{
						y+=1;
						cnt++;
						int c=x*10+y;
						mmap.insert(c);
					}
				}
			}
		}
		cout<<mmap.size()<<endl;
	}
	
	return 0;
}
2024/10/29 21:46
加载中...