求大佬调教
查看原帖
求大佬调教
1426031
Yezi_damn楼主2024/11/8 21:06

代码在下面,看了半天没有查出啥问题;

样例没有过,一直都是只停留在起点

个人觉得可以从 24 行的 while 循环那里开始找问题

麻烦大佬调教一下,球球了!

#include<bits/stdc++.h>
using namespace std;
bool vis[1010][1010],mp[1010][1010];
int dx[]={0,1,0,-1},dy[]={1,0,-1,0},ans,n,m,k,x,y,d,v;
char s;
int main()
{
	int T;
	cin>>T;
	while(T--)
	{
		ans=0;
		memset(vis,0,sizeof vis);
		cin>>n>>m>>k>>x>>y>>d;
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				cin>>s;
				mp[i][j]=(s=='.'?1:0);
			}
		}
		vis[x][y]=1; //标记起点!!! 
		while(k--) //k次尝试 
		{
			int xx=x+dx[d],yy=y+dy[d];
			if(xx>0&&xx<=n&&yy>0&&yy<=m&&mp[xx][yy]&&vis[xx][yy]) x=xx,y=xx;
			else d=(d+1)%4; //换方向试
			vis[x][y]=1;
		}
		for(int i=1;i<=n;i++) 
		{
			cout<<"  => ";
			for(int j=1;j<=m;j++) 
//				ans+=vis[i][j]; //total 
				cout<<vis[i][j]<<' ';
			cout<<endl;
		}

		cout/*<<" ans=>"*/<<ans<<endl;
	}
}
2024/11/8 21:06
加载中...