通过代码:
#include<bits/stdc++.h> using namespace std; int n, m, a[30], b[30], c[30], d[30], rate; void print() { rate ++; if(rate == m) { for(int i = 1; i <= 8; i ++) printf("%d", a[i]); printf("\n"); } } void dfs(int k) { for(int i = 1; i <= 8; i ++) if(!b[i] && !c[k + i] && !d[k - i + 7]) { a[k] = i, b[i] = c[k + i] = d[k - i + 7] = 1; if(k == 8) print(); else dfs(k + 1); b[i] = c[k + i] = d[k - i + 7] = 0; } } int main() { scanf("%d", &n); for(int i = 1; i <= n; i ++) { rate = 0; scanf("%d", &m); dfs(1); } return 0; }
1214:八皇后
最新推荐文章于 2023-08-29 15:37:21 发布