• 板块灌水区
  • 楼主Xu7300
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/9/29 10:39
  • 上次更新2024/9/29 16:06:46
查看原帖
972195
Xu7300楼主2024/9/29 10:39

P1443 20分

#include<bits/stdc++.h>
using namespace std;
struct node{
	int x,y;
};
int n,m,x,y,a[405][405],v[405][405];
int dx[8]={-1,-2,-2,-1,1,2,2,1};
int dy[8]={2,1,-1,-2,2,1,-1,-2};
queue<node>q;
int main(){
    cin>>n>>m>>x>>y;
    for(int i=1;i<=n;i++){
    	for(int j=1;j<=m;j++)a[i][j]=-1;
	}
    a[x][y]=0;
    v[x][y]=1;
    q.push({x,y});
    while(!q.empty()){
    	node f=q.front();
    	q.pop();
    	for(int i=0;i<8;i++){
    		int xx=f.x+dx[i];
    		int yy=f.y+dy[i];
    		if(v[xx][yy]==1)continue;
    		if(xx<1||xx>n||yy<1||yy>n)continue;
    		v[xx][yy]=1;
    		a[xx][yy]=a[f.x][f.y]+1;
    		q.push({xx,yy});
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++)printf("%-5d",a[i][j]);
		cout<<endl;
	}
    return 0;
}

求掉

悬一关 thx

2024/9/29 10:39
加载中...