MLE求助
查看原帖
MLE求助
912779
isme1楼主2023/10/14 11:26
#include <bits/stdc++.h>
#define int long long
using namespace std;
int dx[15]={-1,-2,-2,-1,1,2,2,1,1,-1,1,-1};
int dy[15]={2,1,-1,-2,2,1,-1,-2,1,-1,-1,1};
int x,y,xx,yy,a,b;
queue<pair<int,int> >q;
queue<pair<int,int> >p;
int c[20][20],d[20][20],e[20][20],f[20][20];
signed main()
{
    cin>>x>>y;
	cin>>xx>>yy;
    q.push(make_pair(x,y));
    p.push(make_pair(xx,yy));
   while(!q.empty()){
    	a=q.front().first;
    	b=q.front().second;
    	q.pop();
    	for(int i=0;i<12;i++){
    		int u=a+dx[i];
    		int v=b+dy[i];
    		if(u<1||u>101||v<1||v>101) 
			{
			continue;
    	}
    	c[u][v]=c[a][b]+1;
    	d[u][v]=1;
    	q.push(make_pair(u,v));
   	}
    }
    while(!p.empty()){
    	a=p.front().first;
    	b=p.front().second;
    	p.pop();
    	for(int i=0;i<12;i++){
    		int u=a+dx[i];
    		int v=b+dy[i];
    		if(u<1||u>101||v<1||v>101) 
			{
			continue;
    	}
    	e[u][v]=e[a][b]+1;
    	f[u][v]=1;
    	p.push(make_pair(u,v));
    	}
    }
    cout<<c[1][1]<<endl<<e[1][1];
	return 0;
}

2023/10/14 11:26
加载中...