P2960 64分求助
  • 板块题目总版
  • 楼主C202301
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/1/13 12:28
  • 上次更新2024/1/13 15:05:57
查看原帖
P2960 64分求助
975726
C202301楼主2024/1/13 12:28
#include<iostream>
#include<queue>
using namespace std;
struct jon{
	int x,y,ci;
};
bool L[101][101];
int main()
{
	jon ru;
	int X,Y,MX,MY;
	cin>>X>>Y>>ru.x>>ru.y;
	ru.ci=0;
	char c[Y+1][X+1];
	for(int i=1;i<=Y;i++)
	for(int j=1;j<=X;j++)
	{
		cin>>c[i][j];
		if(c[i][j]=='*')
		L[i][j]=1;
	}
	queue<jon>Q;
	Q.push(ru);
	L[ru.x][ru.y]=1;
	jon wr;
	while(!Q.empty())
	{
		bool uff=1;
		for(int i=1;i<=Y;i++)
		{
			for(int j=1;j<=X;j++)
			if(L[i][j]==0)
			uff=0;
		}
		if(uff==1)
		break;
		wr=Q.front();
		Q.pop();
		if(wr.x+1<=Y&&L[wr.x+1][wr.y]==0&&c[wr.x+1][wr.y]!='*')
		{
			L[wr.x+1][wr.y]=1;
			Q.push((jon){wr.x+1,wr.y,wr.ci+1});
		}
		if(wr.x-1>=1&&L[wr.x-1][wr.y]==0&&c[wr.x-1][wr.y]!='*')
		{
			L[wr.x-1][wr.y]=1;
			Q.push((jon){wr.x-1,wr.y,wr.ci+1});
		}
		if(wr.y+1<=X&&L[wr.x][wr.y+1]==0&&c[wr.x][wr.y+1]!='*')
		{
			L[wr.x][wr.y+1]=1;
			Q.push((jon){wr.x,wr.y+1,wr.ci+1});
		}
		if(wr.y-1>=1&&L[wr.x][wr.y-1]==0&&c[wr.x][wr.y-1]!='*')
		{
			L[wr.x][wr.y-1]=1;
			Q.push((jon){wr.x,wr.y-1,wr.ci+1});
		}
		if(wr.x+1<=Y&&wr.y+1<=X&&L[wr.x+1][wr.y+1]==0&&c[wr.x+1][wr.y+1]!='*')
		{
			L[wr.x+1][wr.y+1]=1;
			Q.push((jon){wr.x+1,wr.y+1,wr.ci+1});
		}
		if(wr.x+1<=Y&&wr.y-1>=1&&L[wr.x+1][wr.y-1]==0&&c[wr.x+1][wr.y-1]!='*')
		{
			L[wr.x+1][wr.y-1]=1;
			Q.push((jon){wr.x+1,wr.y-1,wr.ci+1});
		}
		if(wr.x-1>=1&&wr.y+1<=X&&L[wr.x-1][wr.y+1]==0&&c[wr.x-1][wr.y+1]!='*')
		{
			L[wr.x-1][wr.y+1]=1;
			Q.push((jon){wr.x-1,wr.y+1,wr.ci+1});
		}
		if(wr.x-1>=1&&wr.y-1>=1&&L[wr.x-1][wr.y-1]==0&&c[wr.x-1][wr.y-1]!='*')
		{
			L[wr.x-1][wr.y-1]=1;
			Q.push((jon){wr.x-1,wr.y-1,wr.ci+1});
	    }
	}
	cout<<wr.ci+1;
	return 0;
}
2024/1/13 12:28
加载中...