C语言编程 潜水
  • 14发帖数
  • 14主题数
  • 0关注数
  • 0粉丝
开启左侧

C++经典算法问题:棋盘覆盖问题(分治算法)!含源码示例

[复制链接]
C语言编程 发表于 2021-10-4 18:42:07 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

                               
登录/注册后可看大图

棋盘覆盖问题

问题说明
在一个2^k * 2^k个方格构成的棋盘中,恰有一个方格与其它方格不同,称该方格为一特殊方格。
棋盘覆盖问题就是要用图示的4种不同形态的L型骨牌覆盖给定棋盘上除特殊方格之外的所有方格,且任何2个L型骨牌不得重叠覆盖。

                               
登录/注册后可看大图

功能说明
本程序用分治法的思想解决了棋盘覆盖问题,显示输出
代码简述
用户输入数据,程序输入检测,动态分配空间,调用棋盘覆盖函数,把计算结果存储到board(二维数组指针),显示输出。
其中棋盘覆盖函数用分治的思想把棋盘分成四份,递归求解。
源码示例:
#include#include#includeusingnamespacestd;intnum_Now =0;//记录L型骨牌编号int**board =NULL;//棋盘指针//函数声明voidChessBoard(intnum_BoardTopLeftRow,intnum_BoardTopLeftColumn,intnum_SpecialRow,intnum_SpecialColumn,intboardSize);intmain() {intnum_BoardTopLeftRow =0,//棋盘左上角的行号num_BoardTopLeftColumn =0,//棋盘左上角的列号num_SpecialRow =0,//特殊方格所在的行号num_SpecialColumn =0,//特殊方格所在的列号boardSize =0,//棋盘巨细k =0;//构成的(2^k)*(2^k)个方格的棋盘//用户界面cout

精彩评论2

某用户1310762158 发表于 2021-10-4 19:49:02 | 显示全部楼层
转发了
锦鲤旭V 发表于 2021-10-4 19:29:30 | 显示全部楼层
转发了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

猜你喜欢
在线客服邮箱
wxcy#wkgb.net

邮箱地址#换为@

Powered by 创意电子 ©2018-现在 专注资源实战分享源码下载站联盟商城