蓝桥python——方格分割【2017 第四题】 题目描述:6x6 的方格,沿着格子的边线剪开成两部分。 要求这两部分的形状完全相同。
如图 就是可行的分割法。
【蓝桥杯|蓝桥python——方格分割【2017 第四题】】
文章图片
试计算: 包括这 3 种分法在内,一共有多少种不同的分割方法。
注意:旋转对称的属于同一种分割法。
用dfs算法
def dfs(x,y):
global N,count,dire,staq##声明为全局变量
if x==0 or x==N or y==0 or y==N:
count+=1
return
for i in range(4):
xt=int(x+dire[i][0])
yt=int(y+dire[i][1])
if staq[xt][yt]:
continue
staq[xt][yt]=True
staq[N-xt][N-yt]=True
dfs(xt,yt)
staq[xt][yt]=False
staq[N-xt][N-yt]=False
N=6
count=0
dire=[(0,1),(1,0),(0,-1),(-1,0)]##记录四个方位
staq=[[False for _ in range(N+1)] for _ in range(N+1)]##记录各个点是否被剪
staq[N//2][N//2]=Truedfs(N/2,N/2)
print(count/4)
推荐阅读
- 蓝桥杯|蓝桥python——玩具蛇
- CTF|2021DASCTF八月挑战赛Writeup
- 蓝桥杯|蓝桥python—— 剪邮票【2016 第七题】
- 备战蓝桥杯|【蓝桥python冲刺17天】——如何轻松拿捏必考数论题((第三弹))
- 备战蓝桥杯|【蓝桥python冲刺31天】——如何轻松拿捏必考数论题((第一弹))
- #|python opencv 图像像素处理基础
- 神经网络|【论文导读】浅谈胶囊网络与动态路由算法
- 图像处理与机器视觉|LM算法
- Python科学计算和数据分析|Seaborn系列(五)(回归(Regression)及矩阵(Matrix)绘图)