数组不标记走过MLE,标记后WA
查看原帖
数组不标记走过MLE,标记后WA
759152
yinbe楼主2023/7/28 10:20
#include<iostream>
#include<queue> 
using namespace std;
int tx,ty,mx,my;
bool vis[25][25]={0};
long long cnt;
struct path
{
	int x,y;
};
int main()
{
	scanf("%d%d%d%d",&tx,&ty,&mx,&my);
	vis[mx][my]=true;
	vis[mx+2][my+1]=true;
	vis[mx+2][my-1]=true;
	vis[mx-2][my+1]=true;
	vis[mx-2][my-1]=true;
	vis[mx+1][my+2]=true;
	vis[mx+1][my-2]=true;
	vis[mx-1][my+2]=true;
	vis[mx-1][my-2]=true;
	queue<path>q;
	q.push({0,0});
	while(!q.empty())
	{
		path a=q.front();
		q.pop();
		if(a.x<0||a.y<0||a.x>=25||a.y>=25)
		{
			continue;
		}
		if(vis[a.x][a.y])
		{
			continue;
		}
		if(a.x==tx&&a.y==ty)
		{
			cnt++;
			continue;
		}
//		vis[a.x][a.y]=true;
		q.push({a.x+1,a.y});
		q.push({a.x,a.y+1});
	}
	printf("%d",cnt);
	return 0;
}
2023/7/28 10:20
加载中...