问题引入:
标题:方格分割
6x6的方格,沿着格子的边线剪开成两部分。
要求这两部分的形状完全相同。
如图:p1.png, p2.png, p3.png 就是可行的分割法。
试计算:
包括这3种分法在内,一共有多少种不同的分割方法。
注意:旋转对称的属于同一种分割法。
#include<stdio.h> int book[3][1],book2[7][7]={0}; int ans=0; void dfs(int x,int y) { int i,tx,ty; if(x==0||y==0||x==6||y==6) { ans++; return; } int book[4][2]= { {1,0},//右走 {-1,0},//左走 {0,1},//上走 {0,-1}//下走 }; book2[x][y] = 1; book2[6-x][6-y] = 1; for(i=0;i<4;i++) { tx = x + book[i][0]; ty = y + book[i][1]; if(tx<0||tx>6||ty<0||ty>6) continue; if(book2[tx][ty]==0) { dfs(tx,ty); } } book2[x][y] = 0; book2[6-x][6-y] = 0; } int main() { dfs(3,3); printf("%d",ans/4); return 0; }