#include <cstdio> #include <iostream> using namespace std; int a[100]; int ans=0, N=8; bool b[100], c[100], d[100];//Horizontal and vertical, left diagonal, right diagonal void dfs(int x) { if(x > N) { years ++; return ; } for(int i=1; i<=N; i++) { if(!(b[i] || c[x+i] || d[x-i+N])) { b[i] = c[x+i] = d[x-i+N] = true; a[x] = i; dfs(x+1); b[i] = c[x+i] = d[x-i+N] = false; } } } intmain() { dfs(1); cout << ans << endl; return 0; }
Queen N
Guess you like
Origin http://43.154.161.224:23101/article/api/json?id=325845920&siteId=291194637
Recommended
Ranking