标题:方格分割
6×6的方格,沿着格子的边线剪开成两部分。
要求这两部分的形状完全相同。
如图:p1.png, p2.png, p3.png 就是可行的分割法。
试计算:
包括这3种分法在内,一共有多少种不同的分割方法。
注意:旋转对称的属于同一种分割法。
请提交该整数,不要填写任何多余的内容或说明文字。
public class 方格分割 {
static int dx[]= {0,0,-1,1},dy[]= {1,-1,0,0},ans;
static boolean visited[][]=new boolean[7][7];
static void dfs(int x,int y) {
if(x==0||y==0||x==6||y==6) {
ans++;
return;
}
for(int i=0;i<4;i++) {
int nx=x+dx[i],ny=y+dy[i];
if(!visited[nx][ny]) {
visited[nx][ny]=visited[6-nx][6-ny]=true;
dfs(nx,ny);
visited[nx][ny]=visited[6-nx][6-ny]=false;
}
}
}
public static void main(String[] args) {
visited[3][3]=true;
dfs(3,3);
System.out.println(ans/4);
}
}
答案:509