2017年 蓝桥杯 方格分割

问题引入:

标题:方格分割

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;
 } 

猜你喜欢

转载自www.cnblogs.com/changfan/p/10572638.html
今日推荐