摘要: 第一小问: 1.1、解空间由所有合法的 “部件 - 供应商” 选择方案构成 1.2、解空间树为m叉数,总共有n+1层,其中第0层为根节点,第1到n层的第i层表示的是“已确定前i个部位的供应商”。 1.3、(1)已选部件数K,k=n,当到达第n层的时候表示已经选择了n个部件,已经完成了选择。 (2)累 阅读全文
posted @ 2025-12-25 15:21 肥居 阅读(4) 评论(0) 推荐(0)
摘要: 第一小问: 选点问题的目标是用最少的点覆盖所有闭区间,贪心策略设计如下: 排序:将所有区间按右端点从小到大排序; 选点:从第一个区间开始,选择其右端点作为覆盖点; 迭代覆盖:依次检查后续区间,若当前区间的左端点大于当前覆盖点(说明该区间未被覆盖),则选择该区间的右端点作为新的覆盖点,重复此过程。 证 阅读全文
posted @ 2025-12-25 14:58 肥居 阅读(3) 评论(0) 推荐(0)
摘要: 1.1 状态定义:设 dp[i][j] 表示从数字三角形顶部(第 0 行第 0 列)到第 i 行第 j 列的路径最大数字和(行、列均从 0 开始计数)。 递推公式: 1,当 j = 0(当前列是第 i 行的第一列):只能从上方(第 i-1 行第 0 列)向下移动,故 dp[i][j] = dp[i- 阅读全文
posted @ 2025-11-18 18:30 肥居 阅读(3) 评论(0) 推荐(0)
摘要: 1,通过选中一个数作为基准点,然后将小于它的数分到左边,大于它的数分到右边,然后在排序完成后返回基准点的位置,然后比较目标与基准点的距离。然后再对基准点的左边或者是右边再次进行排序,直到一个基准点是目标位置为止,最终输出结果。 2,这个思路的最优情况下的时间复杂度为O(n),最坏情况下的时间复杂度为 阅读全文
posted @ 2025-11-01 19:18 肥居 阅读(4) 评论(0) 推荐(0)
摘要: C++编码规范: 用4个空格缩进,禁用Tab键。 函数间、变量声明后、逻辑片段间加空行。 超80字符的语句分行,操作符放新行首。 每行仅一条语句,不允许多语句同处一行。 if、for、while等语句独自占行,执行语句加花括号{}。 关键字后留空格,函数名后不留,二元操作符前后加空格。 读《数学之美 阅读全文
posted @ 2025-10-14 22:28 肥居 阅读(5) 评论(0) 推荐(0)