acm课程总结

这篇博客总结了ACM课程的主要内容,包括贪心算法、搜索专题(深度优先搜索和广度优先搜索)、动态规划以及图算法中的最小生成树问题。通过对各个专题的深入探讨,博主分享了学习ACM带来的编程能力提升和读程序能力的提高,强调了理解和学习他人代码的重要性。
摘要由CSDN通过智能技术生成

  转眼间,acm已经结束了,虽然只学习了短短的一学期,但受益匪浅。它不仅教会了我很多知识,而且还让我明白了很多道理。

  何为acm,ACM即acm国际大学生程序设计竞赛,是由国际计算机学会主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过近30多年的发展,acm国际大学生程序设计竞赛已经发展成为最具影响力的大学生计算机竞赛。赛事目前由IBM公司赞助。

  这学期总共讲了四个专题,分别是贪心算法专题,搜索专题,动态规划专题和图算法专题。首先,介绍一下贪心算法专题,贪心算法的基本思想是总是做出在当前看来是最优的选择,即找出整体当前中每个小的局部的最优解,并且将所有的这些局部最优解合起来形成整体上的一个最优解,也就是说贪心算法并不是从整体最优考虑的,它所做出的选择只是在某种意义上的局部最优选择,能够使用贪心算法的问题必须满足下面两个性质:

(1)整体的最优解可以通过局部的最优解来求出;

(2)一个整体能够被分出多个局部,并且这些局部都能够求出最优解。

使用贪心算法的两个经典问题是活动安排问题和背包问题。在对问题求解时,不从整体上加以考虑,它所做出的仅仅是在某种意义上的局部最优解(是否是全局最优解,需要证明)。因此,若要用贪心算法求解某问题的整体最优解,必须首先证明贪心算法思想在该问题的应用结果就是最优解。对于一个具体问题,怎么知道能否用贪心算法来解决这个问题呢?一般这类问题有两个比较重要的问题:贪心选择性质和最优子结构性质。所谓贪心选择性质和最优子结构性质。所谓贪心选择性质是指所求问题的整体最优解可以通过一些列局部最优的选择,即贪心选择来达到。做出贪心选择后,原问题就化为规模更小的类似子问题,然后用数学归纳法证明,最终可得到问题的整体最优解。另外,一个重要的性质就是最优子结构,即当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。

 贪心算法的基本步骤如下所示:

   (1)、从问题的某个初始解出发; 

   (2)、采用循环语句,当可以向求解目标前进一步时,就根据局部最优策略,得到一个部分解,缩小问题的范围或规模;

   (3)、将所有部分解综合起来,得到问题的最终解。

虽然贪心算法不能对所有的问题都能得到整体最优解,但是对许多问题它都能产生整体最优解,例如,图的单源最短路径问题,最小生成树问题等。在一些情况下,即使是贪心算法也不能得到整体最优解,其最终结果却是最优解的很好近似,即近似最优解在很多情况下已经能够满足某些问题的求解要求了。

接下来就讲讲搜索专题。在这里用到了关于图的知识,关于图的基本知识

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值