标题:方格分割
6x6的方格,沿着格子的边剪开成两部分。
要求这两部分的形状完全相同。
如图:p1.png, p2.png, p3.png 就是可行的分割法。
试计算:
包括这3种分法在内,一共有多少种不同的分割方法。
注意:旋转对称的属于同一种分割法。
请提交该整数,不要填写任何多余的内容或说明文字。
public class test {
int s=0;
static int[][] dir = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
int[][] visit=new int[7][7];
int[][] shift=new int[][]{{1,-1,0,0},{0,0,1,-1}};
int[][] array=new int[7][7];
{
for(int i=0,s=0;i<7;i++){
for(int j=0;j<7;j++)
{
array[i][j]=s;
System.out.printf("%-3d ",s);
s++;
}
System.out.println();
}
}
public void dfs(int x,int y)
{
if(x==0||x==6||y==0||y==6)
{
s++;
return;
}
for(int i=0;i<4;i++)
{
//int xx=x+shift[0][i];
//int yy=y+shift[1][i];
int xx = x + dir[i][0];
int yy = y + dir[i][1];
if(visit[xx][yy]==0)
{
visit[6-xx][6-yy]=1;
visit[xx][yy]=1;
dfs(xx,yy);
visit[xx][yy]=0;
visit[6-xx][6-yy]=0;
}
}
}
public static void main(String[] args)
{
test m=new test();
m.visit[3][3]=1;
m.dfs(3, 3);
System.out.print(m.s/4);
}
}