40pts求出
查看原帖
40pts求出
1260767
mixue_bc楼主2024/10/27 09:12
#include<bits/stdc++.h>
//#pragma GCC optimize(2)
#define int long long
#define INF LLONG_MAX
#define _INF LLONG_MIN
#define ios ios::sync_with_stdio(0),cout.tie(0),cin.tie(0);
using namespace std;
int fx[4]={0,1,0,-1};
int fy[4]={1,0,-1,0};
int n,m;
const int N=1e3+11;
char mp[N][N];
bool flag[N][N];
int res=1;
void print(int a,int b,int c,int d,int e){cout<<a<<' '<<b<<' '<<c<<' '<<d<<' '<<e<<'\n';}
void dfs(int x,int y,int d,int k){
	flag[x][y]=1;
	if(k==0)return ;
	int dx=x+fx[d];
	int dy=y+fy[d];
	if(mp[dx][dy]=='x'||dx<1||dx>n||dy<1||dy>m||flag[x][y]==0)dfs(x,y,(d+1)%4,k-1);
	else res++,dfs(dx,dy,d,k-1);
}
signed main(){
	ios
	int t;
	cin>>t;
	for(int i=1;i<=t;i++){
		cin>>n>>m;
		int k;
		cin>>k;
		int xx,yy,dd;
		cin>>xx>>yy>>dd;
		for(int j=1;j<=n;j++)for(int z=1;z<=m;z++)cin>>mp[j][z];
		dfs(xx,yy,dd,k);
		cout<<res<<'\n';
		res=1;
	}
	return 0;
}
2024/10/27 09:12
加载中...