WA 80分代码求调
查看原帖
WA 80分代码求调
400245
_Mikasa楼主2023/3/10 17:21

RT WA了最后两个点

#include<bits/stdc++.h>
using namespace std;
int n,m,sx,sy,stx,sty,e1,e2;
map <int,map<int,int> > vis;
int dx[12]={1,1,2,2,2,2,-1,-1,-2,-2,-2,-2};
int dy[12]={-2,2,-2,-1,1,2,-2,2,-1,1,-2,2};
struct stu{
	int x,y,s;
};
bool Noway(int x1,int y1)
{
    if(x1>90&&y1>90) return true;
    if(vis[x1][y1]==1) return true;
    return false;
}

int bfs(int x,int y)
{
	queue <stu> q;
	stu cur,nxt;
	cur.x=x;
	cur.y=y;
	cur.s=0;
	vis[x][y]=1;
	q.push(cur);
	while(!q.empty())
	{
		cur=q.front();q.pop();
		
		for(int i=0;i<12;i++)
		{
			int nx,ny;
			nx=cur.x+dx[i];
			ny=cur.y+dy[i];
			if(Noway(nx,ny)) continue;
			vis[nx][ny]=1;
			nxt.x=nx;
			nxt.y=ny;
			nxt.s=cur.s+1;
			q.push(nxt);
			if(nx==e1&&ny==e2)
			{
				return cur.s+1;
			}
		}
	}
}
int main()
{
	cin>>sx>>sy>>stx>>sty;
	e1=sx,e2=sy;
	cout<<bfs(1,1)<<endl;
	e1=stx,e2=sty;
	vis.clear();
	cout<<bfs(1,1);
	return 0;
 } 
2023/3/10 17:21
加载中...