学习目标:
分享寒假每日刷的算法题,冲击4月蓝桥杯!!冲冲冲

原题:方块分割(2017省赛)
题目描述:
6x6的方格,沿着格子的边线剪开成两部分。 要求这两部分的形状完全相同。如下就是三种可行的分割法。 试计算: 包括这 3 种分法在内,一共有多少种不同的分割方法。 注意:旋转对称的属于同一种分割法。
題解:
思路(回溯算法):
1. 对于类似的棋盘问题想到用回溯算法解决。因为分割线一定为中心对称图形,所以只需要对分割线的一半回溯就行。以中心对称点为起点向外划线。
2. 递归的终止条件:情况1.当割线到达边界。情况2.当前点已经切割过
3.单层递归逻辑:对四个方向一一搜索,对于已经切割过的点做好标记
4.一些细节:因为切割线是中心对称图形,所以在标记的同时还要将关于中心对称的进行标记
5.注意旋转对称的属于同一种分割法,所以最终答案要整除4
代码实现 (Python):
ans = 0
chess = [[0 for i in range(7)]for j in


最低0.47元/天 解锁文章
527

被折叠的 条评论
为什么被折叠?



