社区讨论

救命,不知道错在哪里

P11228[CSP-J 2024] 地图探险参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@m2vy0bnz
此快照首次捕获于
2024/10/30 21:59
去年
此快照最后确认于
2025/11/04 15:40
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
//string a[1000];
char ch[1001][1001];
int T,n,m,k,x_,y_,d,t[6]={1,1,1,1,1};
void mmm(int d,int i)
{
	int y=y_,x=x_;
	if(d==0)
	{
		while(k)
		{
			
			//
			y++;
			if(ch[x][y]=='x' || x>n||x<=0||y>m||y<=0)
			{
				return;
			}
			else
			{
				y_++;
				t[i]++;
				return;
				//k--;
			}
			
		}
	}
	if(d==1)
	{
		
		while(k)
		{
			//int y=y_,x=x_;
			//k--;
			//return;
			x++;
			if(ch[x][y]=='x' || x>n||x<=0||y>m||y<=0)
			{
				return;
			}
			else
			{
				x_++;
				t[i]++;
				return;
				//k--;
			}
			
		}
	}
	if(d==2)
	{
		
		while(k)
		{
			//int y=y_,x=x_;
			//k--;
			y--;
			if(ch[x][y]=='x' || x>n||x<=0||y>m||y<=0)
			{
				return;
			}
			else
			{
				y_--;
				t[i]++;
				return ;
				//k--;
			}
			
		}	
	}
	if(d==3)
	{
		while(k)
		{
			//int y=y_,x=x_;
			
			x--;
			if(ch[x][y]=='x' || x>n||x<=0||y>m||y<=0)
			{
				return;
			}
			else
			{
				x_--;
				t[i]++;
				return ;
				//k--;
			}
		}	
	}
}
int main()
{
	cin>>T;
	for(int i=1;i<=T;i++)
	{
		cin>>n>>m>>k;
		cin>>x_>>y_>>d;
		for(int j=1;j<=n;j++)
		{
			for(int l=1;l<=m;l++)
			{
				cin>>ch[i][j];
			}
		}
		for(;k;)
		{
			int a=t[i];
			mmm(d,i);
			if(t[i]==a)
			d=(d+1)%4;
			k--;
			
		}
	}
	for(int i=1;i<=T;i++)
	{
		cout<<t[i]<<"\n";
	}
}

回复

0 条回复,欢迎继续交流。

正在加载回复...