在这个问题中,涉及到对大小为NxN的棋盘进行填充,使用的方法是L形积木结构,而解决方案则采用C++中的分治法。通过在vs2019环境下进行实验,题目为棋盘覆盖。问题的核心在于对棋盘的不断划分,每次划分前根据特殊块的位置放置一个积木,直到棋盘的长度足够小(n=2)时,停止划分并开始填充。为了实现这一过程,不使用全局变量,而是通过参数传递的方式传递必要的信息,如当前棋盘起点坐标(ax,ay)、特殊点坐标(bx,by)、棋盘长度n、二维棋盘board以及当前使用的符号数cnt。设计了函数trio,其中将n=2作为递归出口,若n不等于2,则根据特殊点位置放置一个积木,然后将棋盘四等分,继续递归。对算法进行复杂度分析,得出时间复杂度为O(nn),空间复杂度为O(nn)。