滑雪路线

Route

联系华体会

Contact huatihui

手机:@HASHKFK
电话:@HASHKFK
QQ:@HASHKFK
邮箱:@HASHKFK
地址:华体会- 华体会体育- 华体会体育官网
滑雪常识

>>你的位置: 首页 > 滑雪常识

第6章 贪心算法华体会- 华体会体育- 体育官网

2025-05-03 17:30:05

  华体会,华体会体育,华体会体育官网,华体会靠谱吗,华体会APP(访问: hash.cyou 领取999USDT)

第6章 贪心算法华体会- 华体会体育- 华体会体育官网

  下面来看看0-1背包问题。 给定一个最大载重量为M的卡车和N种动物。已知第i种动物的重量为Wi, 其最大价值为Vi,设定M,Wi,Vi均为整数,编程确定一个装货方案,使得装 入卡车中的所有动物总价值最大。 【分析】对于n种动物,要么被装,要么不装,也就是说在满足卡车载重的 条件下,如何选择动物,使得动物价值最大的问题。 即确定一组x1,x2,…,xn, xi∈{0,1} f(x)=max(∑xi*vi) 其中,∑(xi*wi)≦w 从直观上来看,我们可以按照上例一样选择那些价值大,而重量轻的动物。 也就是可以按价值质量比(vi/wi)的大小来进行选择。可以看出,每做一次选 择,都是从剩下的动物中选择那些vi/wi最大的,这种局部最优的选择是否能满 足全局最优呢?我们来看看一个简单的例子: 设n=3,卡车最大载重量是100,三种动物a、b、c的重量分别是40,50, 70,其对应的总价值分别是80、100、150。 情况a:按照上述思路,三种动物的vi/wi分别为2,2,2.14。显然,我们首先 选择动物c,得到价值150,然后任意选择a或b,由于卡车最大载重为100,因 此卡车不能装载其他动物。 情况b:不按上述约束条件,直接选择a和b。可以得到价值80100=180, 卡车装载的重量为4050=90。没有超过卡车的实际载重,因此也是一种可行 解,显然,这种解比上一种解要优化。

  因此,利用贪心策略解题,需要解决两个问题: 首先,确定问题是否能用贪心策略求解;一般来说,适用于贪心策略 求解的问题具有以下特点: ①可通过局部的贪心选择来达到问题的全局最优解。运用贪心策略解 题,一般来说需要一步步的进行多次的贪心选择。在经过一次贪心选择之 后,原问题将变成一个相似的,但规模更小的问题,而后的每一步都是当 前看似最佳的选择,且每一个选择都仅做一次。 ②原问题的最优解包含子问题的最优解,即问题具有最优子结构的性 质。在背包问题中,第一次选择单位重量价值最大的货物,它是第一个子 问题的最优解,第二次选择剩下的货物中单位重量价值最大的货物,同样 是第二个子问题的最优解,依次类推。 ③其次,如何选择一个贪心标准?正确的贪心标准可以得到问题的最 优解,在确定采用贪心策略解决问题时,不能随意的判断贪心标准是否正 确,尤其不要被表面上看似正确的贪心标准所迷惑。在得出贪心标准之后 应给予严格的数学证明。

  【例5】删数问题(NOI94) 输入一个高精度的正整数N,去掉其中任意S个数字后剩下的数字按原左右 次序组成一个新的正整数。编程对给定的N和S,寻找一种方案使得剩下的数字 组成的新数最小。 输出新的正整数。(N不超过240位)输入数据均不需判错。 【输入】 n s 【输出】 最后剩下的最小数。 【样例输入】 175438 4 【样例输出】 13 【算法分析】 由于正整数n的有效数位为240位,所以很自然地采用字符串类型存贮n。 那么如何决定哪s位被删除呢?是不是最大的s个数字呢?显然不是,大家很容 易举出一些反例。为了尽可能逼近目标,我们选取的贪心策略为:每一步总是 选择一个使剩下的数最小的数字删去,即按高位到低位的顺序搜索,若各位数 字递增,则删除最后一个数字;否则删除第一个递减区间的首字符,这样删一 位便形成了一个新数字串。然后回到串首,按上述规则再删下一个数字。重复 以上过程s次为止,剩下的数字串便是问题的解了。

  【例1】在N行M列的正整数矩阵中,要求从每行中选出1个数,使得选出的总共N个 数的和最大。 【算法分析】 要使总和最大,则每个数要尽可能大,自然应该选每行中最大的那个数。因此, 我们设计出如下算法: 读入N, M,矩阵数据; Total = 0; for (int l= 1; l= N; l) { //对N行进行选择 选择第I行最大的数,记为K; Total =K; } 输出最大总和Total; 从上例中我们可以看出,和递推法相仿,贪心法也是从问题的某一个初始解出发, 向给定的目标递推。但不同的是,推进的每一步不是依据某一固定的递推式,而是做 一个局部的最优选择,即贪心选择(在例中,这种贪心选择表现为选择一行中的最大 整数),这样,不断的将问题归纳为若干相似的子问题,最终产生出一个全局最优解。 特别注意的是,局部贪心的选择是否可以得出全局最优是能否采用贪心法的关键 所在。对于能否使用贪心策略,应从理论上予以证明。下面我们看看另一个问题。

  【例6】拦截导弹问题(NOIP1999) 某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统,但是这种拦 截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每 一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭,由 于该系统还在试用阶段。所以一套系统有可能不能拦截所有的导弹。 输入导弹依次飞来的高度(雷达给出的高度不大于30000的正整数)。 计算要拦截所有导弹最小需要配备多少套这种导弹拦截系统。 【输入格式】 n颗依次飞来的高度(1≤n≤1000). 【输出格式】 要拦截所有导弹最小配备的系统数k。 【输入样例】389 207 155 300 299 170 158 65 【输出样例】missile.out 2 【输入输出样例】 输入:导弹高度: 7 9 6 8 5 输出:导弹拦截系统K=2 输入:导弹高度: 4 3 2 输出:导弹拦截系统K=1

  【例4】均分纸牌(NOIP2002) 有 N 堆纸牌,编号分别为 1,2,…, N。每堆上有若干张,但纸牌总数必 为 N 的倍数。可以在任一堆上取若干张纸牌,然后移动。 移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上;在 编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上;其他堆上取的纸牌, 可以移到相邻左边或右边的堆上。 现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。 例如 N=4,4 堆纸牌数分别为: ① 9 ② 8 ③ 17 ④ 6 移动3次可达到目的: 从 ③ 取4张牌放到④(9 8 13 10)-从③取3张牌放到 ②(9 11 10 10) 从②取1张牌放到①(10 10 10 10)。 【输入格式】 N(N 堆纸牌,1 = N = 100) A1 A2 … An (N 堆纸牌,每堆纸牌初始数,l= Ai =10000) 【输出格式】 所有堆均达到相等时的最少移动次数。 【样例输入】Playcard.in 4 9 8 17 6 【样例输出】Playcard.out 3

  有N个人排队到R个水龙头去打水,他们装满水桶的时间为T1,T2,…,Tn为整数且 各不相等,应如何安排他们的打水顺序才能使他们花费的时间最少? 【算法分析】 由于排队时,越靠前面的计算的次数越多,显然越小的排在越前面得出的结果越小 (可以用数学方法简单证明,这里就不再赘述),所以这道题可以用贪心法解答,基本步 骤: (1)将输入的时间按从小到大排序; (2)将排序后的时间按顺序依次放入每个水龙头的队列中; (3)统计,输出答案。 【样例输出】 【样例输入】 23 //总共花费时间 4 2 //4人打水,2个水龙头 2 6 4 5 //每个打水时间 参考程序主要框架如下: cinnr; memset(s,0,sizeof(s)); //初始化 j=0; min=0; for (i=1;i=n;i) //用贪心法求解 { j; if (j==r1) j=1; s[j]=a[i]; min=s[j]; } coutmin; //输出解答

  【算法分析】 如果你想到把每堆牌的张数减去平均张数,题目就变成移动正数,加 到负数中,使大家都变成0,那就意味着成功了一半!拿例题来说,平均张 数为10,原张数9,8,17,6,变为-1,-2,7,-4,其中没有为0的数,我 们从左边出发:要使第1堆的牌数-1变为0,只须将-1张牌移到它的右边 (第2堆)-2中;结果是-1变为0,-2变为-3,各堆牌张数变为0,-3,7,-4; 同理:要使第2堆变为0,只需将-3移到它的右边(第3堆)中去,各堆牌张 数变为0,0,4,-4;要使第3堆变为0,只需将第3堆中的4移到它的右边 (第4堆)中去,结果为0,0,0,0,完成任务。每移动1次牌,步数加1。 也许你要问,负数张牌怎么移,不违反题意吗?其实从第i堆移动-m张牌到 第i1堆,等价于从第i1堆移动m张牌到第i堆,步数是一样的。 如果张数中本来就有为0的,怎么办呢?如0,-1,-5,6,还是从左算 起(从右算起也完全一样),第1堆是0,无需移牌,余下与上相同;再比 如-1,-2,3,10,-4,-6,从左算起,第1次移动的结果为0,-3,3,10, -4,-6;第2次移动的结果为0,0,0,10,-4,-6,现在第3堆已经变为0 了,可节省1步,余下继续。

【返回列表】

搜索您想要找的内容!

首页 | 关于华体会 | 华体会新闻 | 滑雪门票 | 滑雪常识 | 人才招聘 | 在线留言 | 联系华体会 | 滑雪路线 | 精彩图片 |

地址:华体会- 华体会体育- 华体会体育官网 电话:@HASHKFK 手机:@HASHKFK

Copyright © 2012-2024 华体会体育户外滑雪培训设备有限公司 版权所有 非商用版本 ICP备案编号: