向高手请教一个“N连形”的问题。

时间:2022-09-16 18:54:04
麻烦高手帮我看看这个题用C++怎么实现,谢谢了! 
顺便问一下,如何把本地图片插入到文章中。


提示:
    关于N连形问题, 用递归解决是一个好思路. 设n个方块时已得出正确解,记为集合F(n), 那么从F(n)中的每一个形状, 在可能的边缘都加上一个方块, 构成形状集合S(n+1). 然后在对S(n+1)中的图形去除重复, 即可构成F(n+1).这样做的好处是不会有遗漏.但是效率偏低,中间可以加些步骤以提高效率.
   稍有难度的地方在于用一种合适的数据结构来表示图形, 便于进行生长, 旋转,查找比较等操作.

向高手请教一个“N连形”的问题。

7 个解决方案

#1


J/L Z/S当一种?

#2


mark 

#3


用N*N的矩阵表示(节省空间的话考虑bit矩阵)?
觉得想要高效处理翻转、旋转也挺难的~

#4


up~~

#5


等待牛人解答

#6


 up

#7


这个我做过,你是不是从这个地方抄过来的啊 http://www.jie2.com/sjsrf/sjfqsrf4.asp:乍一看难,其实也不是多难,当时写了一大通代码,还被他们呢公司的HR鄙视了一番,说用PYTHON有人八行代码就搞定的事情. 听我一哥们儿说,  目前人类好象没算到 n = 30 以上

#1


J/L Z/S当一种?

#2


mark 

#3


用N*N的矩阵表示(节省空间的话考虑bit矩阵)?
觉得想要高效处理翻转、旋转也挺难的~

#4


up~~

#5


等待牛人解答

#6


 up

#7


这个我做过,你是不是从这个地方抄过来的啊 http://www.jie2.com/sjsrf/sjfqsrf4.asp:乍一看难,其实也不是多难,当时写了一大通代码,还被他们呢公司的HR鄙视了一番,说用PYTHON有人八行代码就搞定的事情. 听我一哥们儿说,  目前人类好象没算到 n = 30 以上