描述:有如图所示的七巧板,试编写算法,使用至多4种不同颜色对七巧板进行涂色(每块七巧板一种颜色),要求相邻区域的颜色互不相同,打印输出所有可能的涂色方案。

测试:结果

[1, 2, 1, 3, 2, 1, 4]

[1, 2, 1, 3, 2, 4, 4]

...

[4, 3, 4, 2, 3, 1, 1]
[4, 3, 4, 2, 3, 4, 1]
产生的总次数:672

class A:def __init__(self, sum = 0):self.sum = sumdef add(self):self.sum = self.sum + 1def print(self):print("产生的总次数:{}".format(self.sum))#检查第i块七巧板放第j种颜色是否冲突
def check(i,j):for k in range(0,i):#第i块和第k块七巧板相连,且第k块颜色为第j种颜色if (1==data[i][k] and v[k] == j):return Falsek = k+1return Truesum = A()
def printSolution():print(v)sum.add()def search(i):if i == 7:printSolution()else:for j in range(1,5):if(check(i,j)):v.append(j)search(i+1)v.pop()v = []
data=[[0,1,0,0,1,0,1],[1,0,0,1,0,1,0],[0,0,0,1,0,0,1],[0,1,1,0,0,1,1],
[1,0,0,0,0,0,1],[0,1,0,1,0,0,0],[1,0,1,1,1,0,0]]if __name__ == '__main__':search(0)sum.print()

参考自七巧板设计算法 (C++版)

七巧板涂色算法(Python)相关推荐

  1. C++实现骰子涂色算法

    1.骰子涂色算法要求 输入两个骰子,判断两个骰子是否等价,每个骰子用6个字母表示,例如 123456, 顺序为上前左右后下. 2.思路 任取一个面让其位于正前( 总共6个面),然后转动上下左右四个面( ...

  2. 图的遍历算法-七巧板涂色

    有如图所示的七巧板,试设计算法,使用至多4种不同的颜色对七巧板进行涂色(每块涂一种颜色),要求相邻区域的颜色互不相同,打印输出所有可能的涂色方案. 算法设计: 1.使用邻接矩阵表示七巧板的相邻情况 2 ...

  3. 【教学类-28-01】AB型图案排序涂色手工-python 学具(中班:偏美术和数学)

    效果展示 背景需求 1.纸张不够,缩小学具的面积 最近Python纸类学具用的频率高,主任给我的打印废纸都用光了o(╥﹏╥)o. 因此只能节省空间,设计一页A4的内容两个孩子用. 2.AB排序,永恒的 ...

  4. OpenCV(一)图像读取与新建、图像显示、操作图像像素(2种涂色并比较算法优劣、输出RGB)

    目录 一.读取图像与新建图像 1.读取图像 2.新建图像 二.显示图像 1.过程 2.代码 3.运行效果 三.操作图像像素 1.逐RGB涂色(单循环)(快) 1-1.过程 2-2.代码 2-3.运行结 ...

  5. 【数据结构与算法】之给Nx3网格图涂色的方案数的求解算法

    一.题目要求 你有一个 n x 3 的网格图 grid ,你需要用 红,黄,绿 三种颜色之一给每一个格子上色,且确保相邻格子颜色不同(也就是有相同水平边或者垂直边的格子颜色不同). 给你网格图的行数 ...

  6. 【算法•日更•第三十期】区间动态规划:洛谷P4170 [CQOI2007]涂色题解

    废话不多说,直接上题:  P4170 [CQOI2007]涂色 题目描述 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为5的字符 ...

  7. 算法学习 区间dp 涂色PAINT

    题目链接: 牛客网 涂色PAINT 这是一道区间dp题,题目有小错误,字符串的长度不是5,而是小于1005的长度. 定义:f[i][j] 为区间[i,j]需要涂色最少的次数 我们可以发现这样一件事:我 ...

  8. python怎么涂颜色_涂色问题(Python)

    题目:将一个圆形等分成N个小扇形,将这些扇形标记为1,2,3,-,N.现在使用M种颜色对每个扇形进行涂色,每个扇形涂一种颜色,且相邻的扇形颜色不同,问有多少种不同的涂法?(N≥1,M≥3) 递归解决: ...

  9. BZOJ 1260:[CQOI2007]涂色paint

    (⊙o⊙)-,常规课考试又炸了!目测此次我要完蛋了... 又玩脱了,考数学的时候装B装大了! 算了,先进入正题... 题目描述: Description 假设你有一条长度为5的木版,初始时没有涂过任何 ...

最新文章

  1. ISA三向外围网络模板说明
  2. python基础教程3-Python基础教程(三)
  3. sqlplus -prelim,sqplus区别
  4. hdu1010深搜+奇偶剪枝
  5. html编写气泡对话框,HTML+CSS入门 纯CSS手写圆角气泡对话框
  6. 怎样快速读完一本网络小说
  7. 那一天,那一月,那一年,那一世,那一瞬
  8. MySQL与Oracle的语法区别详细对比 (转)
  9. wc 统计文件字节数、字符数、单词数
  10. Unicode 汉字内码表
  11. 根据图片原型写一个html页面,如何分分钟开发高保真交互原型_html/css_WEB-ITnose
  12. JQuery Ajax使用FormData对象上传文件 图片
  13. formate在python_python的format方法
  14. 如何快速自动生成并定制报表
  15. telnet -测试端口号
  16. 判断三点顺序(顺时针或者逆时针)(模板)
  17. 读取数据 python
  18. 文献管理软件Endnote X9入门使用
  19. 不可抗力与不可抗拒的因素的区别
  20. C#在Win 7/8/10 OS下删除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB子项

热门文章

  1. python 3爬取 12306余票
  2. linux安装Oracle 11g详解
  3. 基于SL773-2018计算土壤流失量的Python实现
  4. 业务需求近期准备深度学习下SpringCloud为加深印象提高学习效果故做此笔记以备后面复习查看之用
  5. 巴菲特旗下公司持有470亿美元苹果股票 他用的却是20美元的三星翻盖机
  6. VLC打不开视频文件调试技巧
  7. 出错记录:Error: package or namespace load failed for ‘DESeq2’:没有这个DLL ‘BiocParallel’:是不是没有为此架构安装?
  8. 单片机开发---ESP32S3移植NES模拟器(二)
  9. 商务办公软件应用与实践【3】
  10. 信息泛滥,抽奖集赞:微信如何扼杀了用户的独立和自由