求助 P1443 马的遍历
  • 板块灌水区
  • 楼主Davi_d
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/7/10 13:55
  • 上次更新2024/7/10 15:10:34
查看原帖
求助 P1443 马的遍历
1266795
Davi_d楼主2024/7/10 13:55
#include <bits/stdc++.h>

using namespace std;
#define ll long long 
const int N=1e4+5;
ll dx[8]={-1,-1,1,1,-2,-2,2,2};
ll dy[8]={-2,2,-2,2,-1,1,-1,1};
int a[N];
bool vis[405][405];
int main() {
    ll n;
    cin >> n;
	
   	ll m;
   	cin>>m;
  	ll sx,sy;
  	cin>>sx>>sy;
    queue<array<int,3>>q;
    q.push({sx,sy,0});
    vis[sx][sy]=true;
    while(!q.empty()){
    	auto t=q.front();q.pop();
    	ll x=t[0],y=t[1],depth=t[2];
    	ll ans[405][405];
    	for(int i=1;i<8;i++){
    		ll nx=x+dx[i],ny=y+dy[i],ndepth=y+dy[i],ndepth=depth+1;
    		ans[x][y]=depth;
    		if(vis[nx][ny]==true)	continue;
    		if(1>nx&&nx>n&&1>ny&&ny>m) continue;
    		q.push({sx,sy,0});
    		vis[nx][ny]=true;
		}
		for(int i=1;i<=n;i++,cout<<endl){
			for(int j=1;j<=m;j++){
				cout<<ans[i][j]<<' ';
			}
		}
	}
	    return 0;
}


2024/7/10 13:55
加载中...