Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
180533 A班雷善乔 骑士遍历2 C++ 解答错误 0 63 MS 244 KB 796 2024-08-21 15:42:37

Tests(0/11):


#include<bits/stdc++.h> using namespace std; int n; int a[20][20]; int dx[8]={-2,-2,-1,1,2,2,1,-1}; int dy[8]={-1,1,2,2,1,-1,-2,-2}; bool flag=0; void dfs(int x,int y,int cnt){ int x1,y1; if(cnt==n*n){ flag=1; return; } for(int i=0;i<8;i++){ x1=x+dx[i]; y1=y+dy[i]; if(x1>0&&x1<=n&&y1>0&&y1<=n&&!a[x1][y1]){ cnt++; a[x1][y1]=cnt; dfs(x1,y1,cnt); cnt--; if(flag){ return; } a[x1][y1]=0; } x1=x-dx[i]; y1=y-dy[i]; } } int main(){ int x,y; cin>>n>>x>>y; a[x][y]=1; dfs(x,y,1); for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(a[i][j]==0){ cout<<"No answer"; return 0; } } } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cout<<a[i][j]<<" "; } cout<<endl; } return 0; }


测评信息: