![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 58
Iris_xixi
这个作者很懒,什么都没留下…
展开
-
贪心算法:最优分解问题
问题描述:设n是一个正整数,现要求将n分解为若干个互不相同的自然数的和,使这些自然数的乘积最大.代码如下:int BestMul(int n){ int i,j,mul=1; int num; //初始化一个数组,用来存放分解后的每个数 int a[MAX] = {0}; a[0]=2; num=n-2; //利用for循环来从2开始递增,每原创 2016-05-26 11:16:12 · 7385 阅读 · 0 评论 -
编辑距离
问题:设A和B是两个字符串,要用最少的字符操作将字符串A转换成字符串B.这里所说的字符串操作包括:(1)删除一个字符;(2)插入一个字符;(3)将一个字符改为另一个字符;将字符串A变换成字符串B所用的最少字符操作数成为字符串A到字符串B的编辑距离.这个问题我们使用动态规划.动态规划的思想和分治法很像,都是将大问题化小,但是不一样的是,动态规划的子问题往往不是独立的,它总是由原创 2016-05-05 13:55:29 · 721 阅读 · 0 评论 -
最大K乘积问题
问题描述:输入n和k,其中n为十进制数长度,k为分的段数,然后输入一个长度为n的十进制数,算出分成k段之后最大的乘积例:输入1234有以下结果 1x2x34=68,1x23x4=92,12x3x4=144,最大乘积为144我们利用MaxI[n][k]表示长度为n的最大k乘积,用I(s,t)表示从s开始到t的十进制数,当我们的k=1时(即只分成一段)最大值就是本身即I(1,n);如果k>原创 2016-05-05 14:11:52 · 594 阅读 · 0 评论 -
伪币问题
因为本题使用了分治法,我先介绍一下分治法的思想吧分治法的基本思想就是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同.递归的解这些子问题,然后将各个子问题的解合并得到原问题的解.(其实就是把一个大问题不断的分小,然后一个个解决啦)题目:设有16枚硬币,其中有一枚伪币,真币重量都一样,伪币质量比真币轻,现在要找出那枚伪币分析:16枚硬币,我们可以分原创 2016-05-05 13:25:15 · 1412 阅读 · 0 评论