递归和分治
文章平均质量分 86
Smoothzjc
SCAU 希望在CSDN上结识到更多志同道合的人!
展开
-
算法设计与分析 SCAU19180 集合划分问题
递归思路:以最大数n为例1. n **独立作为一个子集**,问题就演变为 n - 1 个数分为 m - 1 个集合。即:如果现在是将4个元素划分为3个集合,如果加入第四个数时要求为独立一个子集,那在这基础上,结果加上个数为3个元素划分为2个集合的数量。2. n 和其他数字在一起构成子集,那么先将 n - 1 个数字分为 m 个集合,再将 n 插入到这 m 个集合中的某个集合中去,因此此时会有 m 种插入方案。原创 2022-12-01 17:45:24 · 682 阅读 · 0 评论 -
算法设计与分析 SCAU18931 分形
因此我们可以不断地往左上角、右上角、中心、左下角、右下角进行递归(即五次)**那我们如何在第一、第二次递归等等,确定我要找的位置在哪里呢?**我们可以用草稿纸帮助我们计算- 第一次递归,右上角距离左上角为18个单位- 第二次递归,右上角距离左上角为6个单位- 第三次递归,右上角距离左上角为2个单位**这些数字有什么特点呢**- 18 = 3 ^ 3 - 3 ^ 2(n = 4)- 6 = 3 ^ 2 - 3 ^ 1(n = 3)- 2 = 3 ^ 1 - 3 ^ 0原创 2022-11-28 15:55:06 · 373 阅读 · 0 评论 -
算法设计与分析 SCAU19184 传球游戏
### 一、深度优先搜索#### 解题思路搜索即将所有情况列出来,每传到一个同学手中时,他都有两种选择,一个是往左传,一个是往右传,我们只要计算传到最后一次时是否传回第一个人手中即可。类似于击鼓传花,只不过击鼓传花结束条件是**时间到了**,而这题的结束条件是**传的次数到了**。当传到 j 同学手中时,传过来的位置有两种情况,一种是从左边即 j - 1,一种是从右边即 j + 1,因此 a[i][j] = a[i - 1][j - 1] + a[i - 1][j + 1]但需要注意有特殊情况原创 2022-11-28 11:14:54 · 1343 阅读 · 0 评论 -
算法设计与分析 SCAU17104 视频流有效调度
#### 1. 贪心算法由于题目要求是 **优先输出的是“字典序”最小的有效调度**,所以贪心思想也是比较容易想到的,即:每次都从头往后找,找到第一个满足视频流调度条件的,就进行记录,然后重新从头往后找,直到所有视频流都记录为止(即所有视频流都已发送)。#### 2. 搜索 + 回溯 + 剪枝此题我们的思想类似于全排列,也就是将所有序号按字典序从小到大排列出来,当找到第一个满足条件的序列,就停止算法。原创 2022-11-22 17:53:46 · 343 阅读 · 0 评论 -
算法设计与分析 SCAU17965 幸运之星(优先做)
此题不要用递归来写,因为n,m原创 2022-10-29 21:51:26 · 252 阅读 · 0 评论 -
算法设计与分析 SCAU11086 排序问题再探讨
1,请改写一个"递归"的插入排序,排序a[0…n-1],先递归的排序a[0…n-2],然后再将a[n-1]插入到已排序的a[0…n-2]中去。2,自然合并排序,书上2.7节最后介绍的算法,请实现它。3,快速排序,选择"中位数"作为轴值然后进行左右段分区,请实现它。原创 2022-10-25 16:20:49 · 941 阅读 · 0 评论 -
算法设计与分析 SCAU11087 统计逆序对(优先做)
由图可看出,该题可以将数组分为一个个小块,在“治”的过程中合成每两个数组时,进行逆序对数量的判断原创 2022-10-24 11:10:19 · 288 阅读 · 0 评论 -
算法设计与分析 SCAU9718 整数因子分解(优先做)
大于1的正整数 n 都可以分解为 n = x1 * x2 * ... * xm, 每个xi为大于1的因子,即1原创 2022-10-21 16:53:10 · 416 阅读 · 0 评论 -
算法设计与分析 SCAU17088 分治法求众数(优先做)
给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数,编程任务:对于给定的由n个自然数组成的多重集S,采用分治算法编程计算S的众数及其重数。众数原创 2022-10-19 17:00:34 · 857 阅读 · 0 评论 -
算法设计与分析 SCAU8594 有重复元素的排列问题(优先做)
看到这个题目首先解题思路是1. 我们要求元素的所有全排列2. 我们要对求出的全排列去重原创 2022-10-19 12:50:27 · 477 阅读 · 0 评论