本文主要是介绍[puzzle-7]使用拼图块拼接目标图形底部长方形,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
有如下的八种拼图块,每块都是由八块小正方块构成,
这些拼图块刚好可以某种方式拼合放入给定的目标形状,
请以C或C++编程,自动求解 一种拼图方式
目标拼图:
从拼图块和目标图形中我们可以发现目标图形是8*8=64个方块,也就是目标图形需要使用上述8中拼图进行拼接,每个使用一次。
思路:
要拼成目标图形,需要从所有的拼图块中选择7块拼成一个7*8或者8*7的长方形,然后剩下的一块作为顶部的拼图块。每种拼图块在一个目标图形中只能占用一次。
本篇以从所有拼图块中选取7块实现7*8长方形目标图形,输出所有的目标图形为目标。
1、拼图块状态数组
每种拼图块只能使用一次,因此需要声明一个数组用来存储拼图块的占用情况,拼图块使用状态初始值全部为0,如果在目标图形中探测某个位置可以存放该拼图块,则放置该拼图块,并且将拼图块的状态设置为1,;回退的时候需要将拼图块的状态回退到0.
// 图形的占用情况,如果该图形已经使用设置为1,没有占用设置为0
char opa[8]={0};
2、目标图形数组
这篇关于[puzzle-7]使用拼图块拼接目标图形底部长方形的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!