自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 【第5章习题】

现有n种不同形状的宝石,每种n颗,共nn颗。同一形状的n颗宝石分别具有n种不同的颜色c1,c2,…,cn中的一种颜色。欲将这nn颗宝石排列成n行n列的一个方阵,使方阵中每一行和每一列的宝石都有n种不同的形状和n种不同颜色。是设计一个算法,计算出对于给定的n,有多少种不同的宝石排列方案。

2023-11-16 19:54:07 146 1

原创 【第4章习题】

一辆虚拟汽车在加满油之后可以行驶 n km。旅途中有 k 个加油站。设计一个有效算法,使得沿途加油的次数最少。终端输入正整数 n 和 k,表示汽车加满油后可行驶 n km,且旅途中有 k 个加油站。接下来输入 k+1个整数,表示第 k 个加油站与第 k-1个加油站之间的距离。第 0 个加油站表示出发地,汽车已加满油。第 k+1个加油站表示目的地。

2023-11-16 19:12:45 66 1

原创 贪心算法之哈夫曼树

对每一个字符规定一个0,1串作为其代码,并要求任一字符的代码都不是其他字符代码的前缀。这种编码称为前缀码。编码的前缀性质可以使译码方法非常简单。由于任一字符的代码都不是其他字符代码的前缀,从编码文件中不断取出代表某一字符的前缀码,转换为原字符,即可逐个译出文件中的所有字符。例如,表1 中的变长码就是一种前缀码。对于给定的 0,1串001011101可唯一地分解为0,0,101,1101,因而其译码为aabe。

2023-11-16 17:30:45 170 1

原创 【动态规划之0-1背包问题】

的最优值为m(i,j),即m(i,j)是背包容量为j,可选择物品为i,i+1,···,n时0-1背包问题的最优值。按上述算法Knapsack计算后,m[1 ][c ]给出所要求的0-1背包问题的最优值。在选择装入背包的物品时,对每种物品 i 只有两种选择,即装人背包或不装入背包。(1≤i≤n)为正整数时,用二维数组m[ ][ ]来存储m(i,j)的相应值,可设计解0-1背包问题的动态规划算法Knapsack(具体实现见【C++代码实现】)。>0,1 ≤ i ≤ n,要求找出一个n元0-1向量(x。

2023-10-28 12:00:53 128 1

原创 动态规划之图像压缩

其前一段的段长度和像素位数存储于l[n-l[n]]和b[n-l[n]]中。如果限制1 ≤ l[i] ≤ 255,则需要用8表示 l[i],1 ≤ i ≤ m。第 i 个像素段Si中(1 ≤ i ≤ m ),有 l[ i ]个像素,且该段中每个像素都只用 b[ i ] 位表示。,1 ≤ i ≤ n ,表示像素点 i 的灰度值。}的一个最优分段,且l[i],b[i],2 ≤ i ≤ m是{p。+1) ,t[i]+1 ≤ k ≤t[i]+l[i],则h。设 l[i],b[i],1 ≤ i ≤ m 是{p。

2023-10-27 14:05:07 255 1

原创 分治思想之线性时间选择

分析:设所有元素互不相同,在这种情况下,找出的基准x至少比3[(n-5)/10]个元素大,因为在每一组中有两个元素小于本组的中位数,而[n/5]个中位数中又有[(n-5)/10]个小于基准x。同理,基准x也至少比3[(n-5)/10]个元素小,而当n>=75时,3[(n-5)/10]>=n/4。给定线性序集中n个元素和一个整数k,1

2023-10-10 23:43:14 217 1

原创 动态规划之凸多边形最优三角剖分问题

vk>的权和<vk ,vk+1 ,…,vn>的权函数ω,输出是最优值t[i,j]和使得t[i,k]+t[k+1,j]+ω(△vi-1vkvj)达到最优的位置(k=)s[i,j],1≤i≤j≤n。,vj>的最优三角剖分所对应的权值t[i,j]的同时,还在s[i,j]中记录了此最优三角剖分中与边(或弦)vi-1vj构成的三角形的第三个顶点的位置。由最优子结构性质,t[i,j]的值应为t[i,k]的值加上t[k+1,j]的值,再加上vi-1 vk vj的权值,并在i≤k≤j-1的范围内取最小。

2023-10-06 00:11:31 372 1

原创 分治思想之最邻近点对问题(Closest-Pair Problem)

其中,按 x 排序的数组,Qx 和 Rx ,按索引就可以分开了。对于任意的点集 P ,其中点的数量∣ P ∣ = n ,类似于一维情况,可以从 Px 中第⌊ n / 2 ⌋ 个点的坐标(记为x∗)处,将其分为 Q 区与 R 区。从小到大遍历有序的Py,如果点在距x∗小于δ 的区域内,则将它加入S,这样S也是有序的。1. 最小距离的点对在被分割线割离的点对集合中,即δ3 是最小,应返回对应被割离的点对。给定平面上有n个点,找其中的一对点,使得在n个点组成的所有点对中,该点对间的距离最小。

2023-10-05 22:51:18 594

原创 分治思想之归并排序(Mergesort)

4. 归并排序适用于总体无序,但是各子项相对有序的数列。给定一个整数数组nums,请利用归并排序算法将该数组升序排列。输入:nums=[6,1,2,7,9,3,4,5,10,8]第一步:分解 将n个元素分成含n/2个元素的子序列;第三步:合并 合并两个已排序的子序列已得到排序结果。1. 分解是将数组内的数字不断划分,直到划分到最小区间。第二步:解决 用合并排序法对两个子序列递归的排序;3. 需要借助额外的数组来存储归并过程中的有序子数组。输出:[1,2,3,4,5,6,7,8,9,10]

2023-10-05 17:16:44 120

原创 分治思想之快速排序(Quicksort)

先确定一个基准元素,通过一趟排序将要排序的数组分割成以基准元素为轴心的两部分,前半部分比基准元素小,后半部分比基准元素大,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,最终得到一个有序数组。由于各个子问题与原问题形式相同,只是规模较小而已,而当子问题划分得足够小时,就可以用简单的方法解决。5. 直到两个指针指向同一位置,交换基准元素与指针指向的元素,基准元素将数组划分为两个部分,本趟排序结束;4. 当找到一个比基准元素大的元素和一个比基准元素小的元素时,交换两个数据;

2023-10-05 16:10:34 292

原创 递归思想之Hanoi塔问题

开始时,在塔座 A 上有 n个圆盘,这些圆盘自下而上,由大到小地叠放``一起,各圆盘从小到大编号为1,2,...,n。第三步,将塔座B上的圆盘也分成两组(分组方法同上),借助辅助塔座A,将塔座B上面的n-1个圆盘移动到塔座A上,然后将塔座B上剩余的那个最大的圆盘移到塔座C上。第一步,借助辅助塔座B,我们将塔座A上面的n-1个圆盘(即第二个分组)移到塔座B 上(顺序依然同塔座A 一样)当n=2时,将小的圆盘移到B塔座上,将大的圆盘移到C塔座上;第二步,将塔座A 上最大的那个圆盘移到塔座C上。

2023-09-08 23:57:04 176

原创 递归思想之全排列(Perm)

a b c与a c b、b a c与b c a、c a b与c b a,这三组排列的有一个共同点就是:第一个数不变,第二个和每三个交换。当n>1时,Perm(R)由(r1)Perm(R1),(r2)Perm(R2),…当n=1时,Perm、 (R)=(r),其中r是集合R中唯一的元素,这个就是递归的出口条件;1 2 3的全排列共计六种:1 2 3、1 3 2、2 1 3、2 3 1、3 1 2、3 2 1。(ri)Perm(X)表示在全排列Perm(X)的每一个排列前加上前缀得到的排列。

2023-09-06 23:51:50 858 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除