package dierbianzhenti;
import java.util.ArrayList;
public class qiduanma{
static int min = 1;
static int max = 7;
static int length = 8;
static int[][] map = new int[length][length];
static boolean[] choose = new boolean[length];
static int ans;
public static void main(String[] args) {
map[1][2] = map[1][6] = 1;
map[2][1] = map[2][3] = map[2][7] = 1;
map[3][2] = map[3][4] = map[3][7] = 1;
map[4][3] = map[4][5] = 1;
map[5][4] = map[5][6] = map[5][7] = 1;
map[6][1] = map[6][5] = map[6][7] = 1;
map[7][2] = map[7][3] = map[7][5] = map[7][6] = 1;
dfs(1, 0);
System.out.println(ans);
}
public static void test(int choosed) {
if (choosed == 0) {
return ;
}
if (choosed == 1) {
ans++;
return ;
}
ArrayList<Integer> yizhixianglianArrayList = new ArrayList<>();
ArrayList<Integer> weizhixianglianArrayList = new ArrayList<>();
for (int i = min; i <= max; i++) {
if (choose[i]) {
weizhixianglianArrayList.add(i);
}
}
yizhixianglianArrayList.add(weizhixianglianArrayList.remove(0));
while(!weizhixianglianArrayList.isEmpty()) {
boolean temp = false;
for (int i = 0; i < weizhixianglianArrayList.size(); i++) {
if (panduan(weizhixianglianArrayList.get(i), yizhixianglianArrayList)) {
yizhixianglianArrayList.add(weizhixianglianArrayList.remove(i));
temp = true;
break;
}
}
if (!temp) {
break;
}
}
if (weizhixianglianArrayList.isEmpty()) {
ans++;
}
}
public static boolean panduan(Integer weizhi, ArrayList<Integer> yizhis) {
for (Integer yizhi : yizhis) {
if (map[weizhi][yizhi] == 1) {
return true;
}
}
return false;
}
public static void dfs(int index, int choosed) {
if (index > max) {
test(choosed);
return;
}else {
choose[index] = true;
dfs(index + 1, choosed + 1);
choose[index] = false;
dfs(index + 1, choosed);
}
}
}