全MLE求调
查看原帖
全MLE求调
739320
fly_code楼主2024/11/12 17:51
#include<bits/stdc++.h>
using namespace std;
int T,n,m,k,xz,yz,dz,ans=0;
char xy[1005][1005];
bool inf[1005][1005];
int exp(int lx,int ly,int ld,int k){
	if(k==0)return 0;
	int nx,ny,nd;
	if(ld==0){
		nx=lx;
		ny=ly+1;
	}
	if(ld==1){
		nx=lx+1;
		ny=ly;
	}
	if(ld==2){
		nx=lx;
		ny=ly-1;
	}
	if(ld==3){
		nx=lx-1;
		ny=ly;
	}
	if(nx>=1&&nx<=n&&ny>=1&&ny<=m&&xy[nx][ny]=='.')
	{
		if(inf[nx][ny]==false)ans++;
		inf[nx][ny]=true;
		
		exp(nx,ny,ld,k-1);
		
	}
	else
	{
		nd=(ld+1)%4;
		
		exp(lx,ly,nd,k-1);
	}
}
int main()
{
	
	
	cin>>T;
	for(int i=1;i<=T;i++)
	{
		cin>>n>>m>>k;
		cin>>xz>>yz>>dz;
		for(int j=1;j<=n;j++)
		{
			
			for(int l=1;l<=m;l++)
			{
				cin>>xy[j][l];
			}
		}
		exp(xz,yz,dz,k);
		cout<<ans+1<<endl;
		for(int j=1;j<=n;j++)
		{
			
			for(int l=1;l<=m;l++)
			{
				xy[j][l]=0;
				inf[j][l]=0;
			}
		}
		ans=0;
	}
	return 0;
}
谢谢!
2024/11/12 17:51
加载中...