标题:方格分割
6x6的方格,沿着格子的边线剪开成两部分。
要求这两部分的形状完全相同。
如图:
就是可行的分割法。
试计算:
包括这3种分法在内,一共有多少种不同的分割方法。
注意:旋转对称的属于同一种分割法。
请提交该整数,不要填写任何多余的内容或说明文字。
思路:以对称中心点(3,3)为出发点,依次从左,右,上,下遍历到边界的点
public class Main4 {
static int[][] dir = {{0,1},{0,-1},{1,0},{-1,0}};
static int[][] vis = new int [10][10];
static int ans =0;
public static void main(String[] args)
{
vis[3][3]=1;
dfs(3,3);
System.out.print(ans/4);
}
public static int dfs(int x,int y){
if(x == 0||y == 0||x == 6||y == 6)
{
ans++;
return ans;
}
for(int i =0;i<4;i++)
{
int x1 = x + dir[i][0];
int y1 = y + dir[i][1];
int x2=6-x1;
int y2=6-y1;
if(x1 >= 0&&y1 >= 0&&x1 <= 6&&y1 <= 6)
{
if(vis[x1][y1]==0)
{
vis[x1][y1] = vis[x2][y2] = 1;
dfs(x1,y1);
vis[x1][y1] = vis[x2][y2] = 0;
}
}
}
return ans;
}
}