import java.util.Scanner;
public class Main {//考虑一下什么条件需要用dfs 有多种情况需要考虑的
static int n;
static int[][]map;
static int ans;
static int []a={0,0,4,6,0,0,0,12,40,0,0,171,410,0,0,1896,
5160,0,0,32757,59984,0,0,431095,822229,0};
public static void main(String args[]) {`
Scanner scan = new Scanner(System.in);
while(scan.hasNext()) {
n = scan.nextInt();
map = new int[n+1][n+1];
//dfs(1);
//System.out.println(ans);
System.out.println(a[n]);
}
}
public static void dfs(int x) {//n是第一行的数字 只要把第一行求出来 整体就有了
if(x>n) {//第一行填完了,应该往下接着填了
for(int i=2;i<=n;i++) {//再往下一共有n-1个行
for(int j=1;j<=n-i+1;j++) {//列
map[i][j] = map[i-1][j]^map[i-1][j+1];//表示异或 同号为正 异号为负
}
}
int sum=0,sum1=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=n-i+1;j++){
if(map[i][j] == 1) sum++;
if(map[i][j] == 0) sum1++;
}
}
if(sum == sum1) { ans++;}
return ;
}
for(int i=0;i<=1;i++) {
map[1][x] = i;
dfs(x+1);
}
}
}
hdu 2510 java 打表
最新推荐文章于 2022-04-06 18:11:09 发布