标题:方格分割

6x6的方格,沿着格子的边线剪开成两部分。
要求这两部分的形状完全相同。

如图:p1.png, p2.png, p3.png 就是可行的分割法。

试计算:
包括这3种分法在内,一共有多少种不同的分割方法。
注意:旋转对称的属于同一种分割法。

请提交该整数,不要填写任何多余的内容或说明文字。

题解: 
沿着格子的边线剪开成两部分,且这两部分的形状完全相同,则这个边线是关于中心对称的,这个中心是顶点(3,3),顶点从(0,0)开始

从中心开始进行两条对称的dfs,向四周搜索,直到到达边界

#include<stdio.h>
#include<string.h>
#define N 6 int vis[N+][N+],ans=,d[][]={,,,,,-,-,}; int dfs(int x,int y){
int i,x1,y1;
if(x==||y==||x==N||y==N){
ans++;
return ;
}
else{
for(i=;i<;i++){//向四个方向进行深度搜索
x1=x+d[i][];
y1=y+d[i][];
if(vis[x1][y1]==){//该点必须没有被搜索过
vis[x1][y1]=;
vis[N-x1][N-y1]=;
dfs(x1,y1);//深搜
vis[x1][y1]=;//恢复,返回上一层
vis[N-x1][N-y1]=;
}
}
}
} int main(){
memset(vis,,sizeof(vis));
vis[][]=;
dfs(,);
printf("%d",ans/);
return ;
}

最新文章

  1. 关于Java中的基本数据类型转换
  2. JavaScript拼接字符串传递多个参数
  3. 相遇点对 &amp; 数点问题
  4. CentOS 7 编译安装 Code::Blocks
  5. UVALive 6181
  6. 第一章 Spring整体框架和环境搭建
  7. 使用Repository模式构建数据库访问层
  8. 建立LINUX服务器
  9. actionbar详解(二)
  10. odoo Model字段的参数
  11. Fasttext原理
  12. H5 30-CSS元素的显示模式
  13. .Net实现微信公众平台开发接口(一) 之 “微信开发配置”
  14. Python3学习之路~6.5 私有属性和私有方法
  15. Python3 自定义请求头消息headers
  16. Full Schema Stitching with Apollo Server
  17. JS 关于this p9
  18. mule学习笔记
  19. 【基础知识】列一下一个.Net WEB程序员需要掌握的知识
  20. django QueryDict对象

热门文章

  1. sha-hmac
  2. druid数据源连接oracle10g报错:not support oracle driver 1.0
  3. mySQL的行转列
  4. Anaconda安装出现Failed to create Anaconda menus错误及其解决
  5. 2018-2019-2 20165316 《网络对抗技术》Exp1 PC平台逆向破解
  6. 为KindEditor 添加“一键去除空格功能”
  7. bzoj2839 集合计数(容斥)
  8. 基于OpenCV做“三维重建”(4)--相机姿态还原和实现三维重建
  9. GPIO8种方式小总结
  10. mysql5.7.21下载及安装步骤