为何MLE,玄关
查看原帖
为何MLE,玄关
525038
leiwusi楼主2024/3/3 12:32
#include<iostream>
#include<queue>
using namespace std;
const int MAXN = 411;

int n,m,x,y;
int vis[MAXN][MAXN];
int dx[8] = {2,1,2,1,-2,-1,-2,-1};
int dy[8] = {1,2,-1,-2,-1,2,1,-2};


struct nod{
    int cnt,x,y;
};

queue<nod> q;



int main(){
    cin>>n>>m>>x>>y;

    q.push({0,x,y});
    for(int i = 1;i<=n;i++)
    for(int j = 1;j<=m;j++)
    vis[i][j] = -1;

    while(!q.empty()){
        nod u = q.front();
        q.pop();
        vis[u.x][u.y] = u.cnt;
        for(int i = 0;i<8;i++){
            if(vis[u.x+dx[i]][u.y+dy[i]] < 0 && u.x+dx[i]>0 && u.x+dx[i]<=n && u.y+dy[i]>0 && u.y+dy[i]<=m) 
            {
                q.push({u.cnt+1,u.x+dx[i],u.y+dy[i]});
                
            }
        }
    }
    
    for(int i = 1;i<=n;i++){
    for(int j = 1;j<=m;j++){
        cout<<vis[i][j]<<" ";
        }
        cout<<endl;
    }


}
2024/3/3 12:32
加载中...