#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std;
int m[6][6];
void fun(){
memset(m,0,sizeof(m));
for(int i=1;i<6;i++){
for(int j=1;j<6;j++) m[i][j]=(i==j?0:1);
}
m[1][4]=m[4][1]=0;
m[2][4]=m[4][2]=0;
}
void dfs(int k,int step,string s){
s+=(char)(k+'0');
if(step==8){
cout<<s<<endl;
return ;
}
for(int i=1;i<6;i++){
if(m[k][i]){
m[k][i]=m[i][k]=0;
dfs(i,step+1,s);
m[k][i]=m[i][k]=1;
}
}
}
int main(){
fun();
dfs(1,0,"");
return 0;
}
UVA 291 (dfs)
最新推荐文章于 2019-05-05 19:37:42 发布