巨蒻求救
  • 板块灌水区
  • 楼主oflsy
  • 当前回复8
  • 已保存回复8
  • 发布时间2020/9/11 20:29
  • 上次更新2023/11/5 13:24:33
查看原帖
巨蒻求救
240069
oflsy楼主2020/9/11 20:29

传送men

前两个AC,后两个WA

codecode

#include<bits/stdc++.h>
using namespace std;
int aaaaaaaaaaaaaaaa=5;
char c;
char g[5][5];
bool vis[5][5];
int nxtx[4]={0,1,0,-1};
int nxty[4]={1,0,-1,0};
bool flag;
int startx,starty,endx,endy;
void dfs(int x,int y)
{
	vis[x][y]=true;
	if(x==endx&&y==endy)
	{
		flag=true;
		return ;
	}
	for(int i=0,nx,ny;i<4;i++)
	{
		nx=x+nxtx[i];
		ny=y+nxty[i];
		if(nx>4||nx<0||ny>4||ny<0) continue;
		if(g[nx][ny]=='0'&&!vis[nx][ny]) dfs(nx,ny);
	}
	vis[x][y]=false;
	return ;
}
int main()
{
	while(aaaaaaaaaaaaaaaa--)
	{
		scanf("%d%d",&startx,&starty);
		scanf("%d%d",&endx,&endy);
		startx--;
		starty--;
		endx--;
		endy--;
		for(int i=0;i<5;i++)
			for(int j=0;j<5;j++)
			{
				scanf(" %c",&g[i][j]);
				vis[i][j]=false; 
			}
		flag=false;
		if(g[startx][starty]!='1'&&g[endx][endy]!='1') dfs(startx,starty);
		if(flag) printf("yes\n");
		else printf("no\n");
	}
	return 0;
}

求救~

2020/9/11 20:29
加载中...