八皇后问题
#include<bits/stdc++.h>
using namespace std;
void f(int),print();
int n,m;
int a[100][100];
bool iff(int,int);
int sum=0;
int main()
{
system("color 1");
for(int i=1;i<=8;i++){
for(int j=1;j<=8;j++){
a[i][j]=0;
}
}
f(1);
return 0;
}
void f(int k){
if(k>8){
sum++;
print();
return;
}
for(int i=1;i<=8;i++){
if(iff(k,i)==true){
a[k][i]=1;
f(k+1);
a[k][i]=0;
}
}
return;
}
void print(){
cout<<"No."<<sum<<endl;
for(int i=1;i<=8;i++){
for(int j=1;j<=8;j++){
cout<<a[i][j];
}
cout<<endl;
}
}
bool iff(int x,int y){
for(int i=1;i<x;i++){
for(int j=1;j<=8;j++){
if(i+j==x+y||i-j==x-y||x==i||y==j){
if(a[i][j]==1) return false;
}
}
}
return true;
}
#include<bits/stdc++.h>
using namespace std;
void f(int),print();
int n,m;
char a[100],c[100];
bool b[100];
int main()
{
system("color 1");
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
f(0);
return 0;
}
void f(int k){
if(k>n-1){
print();
return;
}
for(int i=0;i<n;i++){
if(b[i]==false){
c[k]=a[i];
b[i]=true;
f(k+1);
b[i]=false;
}
}
return;
}
void print(){
for(int i=0;i<n;i++){
cout<<c[i];
}
cout<<endl;
}