上传者: minkeyuan
|
上传时间:2023/9/5 16:58:10
|
文件大小:3KB
|
文件类型:cpp
L型组件填充(覆盖棋盘)问题
1.问题描述设B是一个n×n棋盘,n=2k,(k=1,2,3,…)。
用分治法设计一个算法,使得:用若干个L型条块可以覆盖住B的除一个特殊方格外的所有方格。
其中,一个L型条块可以覆盖3个方格。
且任意两个L型条块不能重叠覆盖棋盘。
例如:如果n=2,则存在4个方格,其中,除一个方格外,其余3个方格可被一L型条块覆盖;
当n=4时,则存在16个方格,其中,除一个方格外,其余15个方格被5个L型条块覆盖。
2.具体要求输入一个正整数n,表示棋盘的大小是n*n的。
输出一个被L型条块覆盖的n*n棋盘。
该棋盘除一个方格外,其余各方格都被L型条块覆盖住。
为区别出各个方格是被哪个L型条块所覆盖,每个L型条块用不同的数字或颜色、标记表示。
3.测试数据(仅作为参考)输入:8输出:A2337788221376684115996104455091010121213001718181211131317171618141111151916162014141515191920204.设计与实现的提示对2k×2k的棋盘可以划分成若干块,每块棋盘是原棋盘的子棋盘或者可以转化成原棋盘的子棋盘。
注意:特殊方格的位置是任意的。
而且,L型条块是可以旋转放置的。
为了区分出棋盘上的方格被不同的L型条块所覆盖,每个L型条块可以用不同的数字、颜色等来标记区分。
本软件ID:2886333