蓝桥杯就要来咯,加油!
T1:
题目来源:
3472. 八皇后 - AcWing题库
- 简单的八皇后问题,唯一注意点在于怎么存放数值
#include<bits/stdc++.h>
using namespace std;
int a[8][8];
int n,b;
char s[8]; //字符串形式好存放,不用在*10+了
int res[100]; //由于存放解法数据
bool col[20],dui[20],fandui[20];
int id=0;
void dfs(int m)
{
if(m==8){
res[++id]=atoi(s);
return ;
}
for(int i=0;i<8;i++)
{
if(!col[i]&&!dui[m+i]&&!fandui[8-m+i])
{
s[m]=i+1+'0'; //第u个皇后所在的位置
col[i]=dui[m+i]=fandui[8-m+i]=true; //标记列、对角线、反对角线
dfs(m+1);
col[i]=dui[m+i]=fandui[8-m+i]=false;
}
}
}
int main(){
dfs(0);
scanf("%d",&n);
while(n--)
{
scanf("%d",&b);
printf(&#