啊巴啊巴啊
  • 板块题目总版
  • 楼主dtrthg
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/1/29 20:12
  • 上次更新2023/10/28 10:22:53
查看原帖
啊巴啊巴啊
379113
dtrthg楼主2022/1/29 20:12

因为都是bfs就一起发了

1:P2360地下城主

#include <iostream>
#include <string>
#include <cstring>
using namespace std;
const int Maxn=30+10;
int l,r,c;
int sx=0,sy=0,sz=0;
string s[Maxn][Maxn];
bool vis[Maxn][Maxn][Maxn];
int dx[]={0,1,0,-1,0,0};
int dy[]={1,0,-1,0,0,0};
int dz[]={0,0,0,0,1,-1};
struct Stu
{
	int x,y,z,cnt;
}a[Maxn*Maxn*Maxn];
void bfs()
{
	int h=1,t=2;
	a[1].x=sx;a[1].y=sy;a[1].z=sz;
	a[1].cnt=0;
	vis[sx][sy][sz]=true;
	while(h<t)
	{
		if(s[a[h].x][a[h].y][a[h].z]=='E')
		{
			cout<<"Escaped in "<<a[h].cnt<<" minute(s)."<<endl;
			return ;
		}
		for(int i=0;i<6;i++)
		{
			int nx=a[h].x+dx[i],ny=a[h].y+dy[i],nz=a[h].z+dz[i];
			if(nx>=1&&nx<=r&&ny>=1&&ny<=c&&nz>=1&&nz<=l)
			{
				if(vis[nx][ny][nz]==false&&s[nx][ny][nz]!='#')
				{
					vis[nx][ny][nz]=true;
					a[t].x=nx;a[t].y=ny;a[t].z=nz;
					a[t].cnt=a[h].cnt+1;
					t++;
				}
			} 
		}
		h++;
	}
	cout<<"Trapped!"<<endl;
}
int main()
{
	cin>>l>>r>>c;
	for(int i=1;i<=l;i++)
	{
		for(int j=1;j<=r;j++)
		{
			for(int k=1;k<=c;k++)
			{
				cin>>s[i][j][k];
				if(s[i][j][k]=='S') sx=i,sy=j,sz=k;
			}
		}
	}
	bfs();
	return 0;
}

2:P2298Mzc和男家丁的游戏

玄学RE

#include <iostream>
using namespace std;
const int Maxn=2000+10;
int n,m;
int sx=0,sy=0;
string s[Maxn];
bool vis[Maxn][Maxn];
int dx[]={1,0,-1,0};
int dy[]={0,1,0,-1};
struct Stu
{
	int x,y,cnt;
}a[Maxn*Maxn];
void bfs()
{
	int h=1,t=2;
	vis[sx][sy]=true;
	a[1].x=sx;a[1].y=sy;
	a[1].cnt=0;
	while(h<t)
	{
		if(s[a[h].x][a[h].y]=='d')
		{
			cout<<a[h].cnt<<endl;
			return ;
		}
		for(int i=0;i<4;i++)
		{
			int nx=a[h].x+dx[i],ny=a[h].y+dy[i];
			if(nx>=1&&nx<=n&&ny>=1&&ny<=m&&s[nx][ny]!='#')
			{
				if(vis[nx][ny]==false)
				{
					vis[nx][ny]=true;
					a[t].x=nx; a[t].y=ny;
					a[t].cnt=a[h].cnt+1;
					t++;
				}
			}
		}
		h++;
	}
	cout<<"No Way!"<<endl;
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cin>>s[i][j];
			if(s[i][j]=='m') sx=i,sy=j;
		}
	}
	bfs();
	return 0;
}

QaQ

2022/1/29 20:12
加载中...