1 条题解
-
0
#include<bits/stdc++.h> using namespace std; const int N=405; int n,m; int x,y; int mp[N][N]; int dx[]={-2,-2,-1,-1,2,2,1,1}; int dy[]={-1, 1, 2,-2,1,-1,2,-2}; void dfs(int now,int x,int y){ if(now>=400) return ; if(mp[x][y] != -1 && now >= mp[x][y]){ return ; } if(x < 1 || y < 1 || x > n || y > m){ return ; } mp[x][y]=now; for (int i=0;i<8;i++) { int nx=x+dx[i]; int ny=y+dy[i]; dfs(now+1,nx,ny); } } int main(){ memset(mp,-1,sizeof mp); cin>>n>>m>>x>>y; dfs(0,x,y); for(int i=1;i<= n;i++){ for(int j=1;j<=m;j++) { cout<<setw(5)<<left<<mp[i][j]; } cout << endl; } return 0; }
- 1
信息
- ID
- 101
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 10
- 标签
- 递交数
- 2
- 已通过
- 2
- 上传者