PTA填空啊啊啊啊啊啊啊啊

preview
需积分: 0 0 下载量 201 浏览量 更新于2022-12-05 收藏 46KB DOCX 举报
PTA填空啊啊啊啊啊啊啊啊 PTA 填空是指在给定的棋盘中,使用 L 型骨牌来覆盖整个棋盘的过程。该问题是计算机科学中的一种经典问题,属于 NP 完全问题。 在这个问题中,我们需要使用递归的方法来解决。我们需要定义一个二维数组 `board` 来存储棋盘的状态,一个变量 `tile` 来记录当前使用的 L 型骨牌的编号。然后,我们可以使用递归函数 `ChessBoard` 来填充棋盘。 在函数 `ChessBoard` 中,我们首先需要判断当前的棋盘是否已经被填充,如果已经填充了,那么我们就可以返回。如果当前的棋盘还没有被填充,那么我们就需要将其分割成四个小象限,然后递归地填充每个象限。在填充每个象限时,我们需要判断特殊方格是否在当前象限中,如果是,那么我们就需要将其填充;否则,我们就需要将当前象限分割成四个小象限,并继续递归填充。 在主函数 `main` 中,我们首先需要读取棋盘的大小和特殊方格的位置,然后调用函数 `ChessBoard` 来填充整个棋盘。我们可以输出填充后的棋盘状态。 快速排序是另一个经典的算法问题,它的主要思想是将数组分割成两个部分,然后递归地排序这两个部分。快速排序的时间复杂度为 O(n log n),是非常高效的排序算法。 在快速排序中,我们首先需要定义一个结构体 `SqList` 来存储数组的信息,然后定义一个函数 `Partition` 来将数组分割成两个部分。函数 `Partition` 的主要作用是选择一个.pivotkey,然后将数组分割成两个部分,左边的元素都小于 pivotkey,右边的元素都大于 pivotkey。我们可以使用递归函数 `QSort` 来排序整个数组。 在函数 `QSort` 中,我们首先需要将数组分割成两个部分,然后递归地排序这两个部分。排序的过程中,我们需要不断地将数组分割成两个部分,然后将这两个部分排序,最终将整个数组排序。 PTA 填空和快速排序都是计算机科学中非常重要的算法问题,它们都需要使用递归的方法来解决。