Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
180564 A班匡嘉阳 骑士遍历2 C++ 解答错误 0 75 MS 244 KB 845 2024-08-21 16:07:18

Tests(0/11):


#include <bits/stdc++.h> using namespace std; int n,a[20][20],dx[8] = {-2,-2,-1,1,2,2,1,-1},dy[8] = {-1,1,2,2,1,-1,-2,-2}; bool f = 0; void dfs(int x,int y,int num){ int x1,y1; if(num == pow(n,2)){ f = 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]){ num++; a[x1][y1] = num; dfs(x1,y1,num); num--; if(f) 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 = 0;i < n;i++){ for(int j = 0;j < n;j++){ if(a[i][j] == 0){ cout << "No answer!"; return 0; } } } for(int i = 0;i < n;i++){ for(int j = 0;j < n;j++){ if(j){ cout << a[i][j] << ' '; } } } return 0; }


测评信息: