ACM总结报告

 

告别了刷不完题的高中时代,我们来到了大学,各种各样的社团或者是比赛如约而至,而acm比赛却是给我最印象最深的一个。

  我与acm结缘是在大一的学期末,负责我们c++教学的朱红梅老师让我们选一下ACM课,由于各种原因,当时并没有选上,想来想去又想多学点东西,就偷偷跟着其他的同学去听ACM课了,当时的C++也只是学了点皮毛,并不理解什么是泛型,什么是迭代器,去上课的时候也只是听听解题的思路,看不懂具体的代码,直到后来自己看完了C++ primer plus那本C++入门的书和相同版本的C语言入门的书——c primer plus,这些也都是后来的事了。也是因为那时候对C++并没有什么理解,再加上学习ACM很费时间,所以后来就和ACM脱节了,至于假期里买的机械工业出版社出版的那本算法导论,到现在也没看。

  虽然大一的时候听了几节ACM课并没有对我的知识增加多少,但是这让我看清楚了自己与其他人的差别,后来也就有了看那两本1000页的c primer plus 和 C++ primer plus的事了,也坚持看完了,虽然那两本书写的很浅,但对于当时的我来说已经很够用的了,值得一说的是,当时并不知道惠普专业到底和计算机有什么不同,所以大一寒假的时候和一个泰山医学院的同学一起去了趟济宁惠普基地,在那里两个校管部的老师招待了我们,上午我们参观了济宁的惠普基地,下午他们专门为我们请了一个济宁惠普学校的老师,给我们讲了讲问题,当我问到关于ACM的问题时,他告诉我,程序就是算法加数据结构,ACM程序设计课可以很大的提高我们的编程水平,后来当我问到什么编程语言好的时候,他告诉我国内主要用java,国外主要用C语言,也就有了后来的我自学C语言。

  大一下学期的时候我基本上在学C语言,到了大二和ACM接触的也就更少了,基本上也就是java那一套了,直到后来课程表下来,ACM程序设计赫然在列。后来发生了一件很奇怪的事,ACM居然是专业限选课,居然可以删除,身边很多小伙伴都删了。当时我的决心丝毫没有动摇,那就是学ACM,最后14级计算机留了ACM课的也没有几个人了,时隔一年,当我再次步入ACM的讲堂的时候,我什么都懂了,什么是泛型,迭代器,队列。还是和一年前一样的教学流程,那么熟悉,但和以前完全是两个不同的体验了,上了16周的ACM课,感觉学到了很多知识,虽然现在已经是靠java程序设计吃饭了,但是我还是想说,ACM真的很有用,不管你以后去向何方。

  下面我就把这16个周的学习总结报告写在下面。

  再这个寒假的时候,老师就让我们在家自学ACM中的常用类,例如list,map,迭代器。假期里老师也给我们开放了几个专题让我们自己做,刚开始的时候做了几道,后来因为太懒散,也是在家里的原因,也或许是因为自己学过的知识都会了,就没有继续往下做。但是这次刷题再也没有给我大一的时候ACM的恐惧感,完全是轻车熟路,不费多大事。

  开学后的第一个周的周日,ACM终于在5n开课了,看了看来的人,14级的还是比较偏少。第一个专题是贪心算法,所谓贪心算法就是在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解

贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。贪心算法可解决的问题通常大部分都有如下的特性:选择函数可以指出哪一个剩余的候选对象最有希望构成问题的解,为了解决问题,需要寻找一个构成解的候选对象集合,它可以优化目标函数,贪婪算法一步一步的进行。起初,算法选出的候选对象的集合为空。接下来的每一步中,根据选择函数,算法从剩余候选对象中选出最有希望构成解的对象。如果集合中加上该对象后不可行,那么该对象就被丢弃并不再考虑;否则就加到集合里。每一次都扩充集合,并检查该集合是否构成解。如果贪心算法正确工作,那么找到的第一个解通常是最优的。贪心算法最大的问题在于如何贪心,贪心的标准是什么样的,这才是我们需要解决的问题。往往贪心算法找到的最优解,并不是真正意义上的最优解,而是由局部最优解拼凑出来的“最优解”。在第一个专题中自己刷题也是属于比较少的那种,至于原因有很多,也或许是因为其他的项目没把学习的重点放在acm上面吧。

第一个专题很快就过去了,我们又步入了第二个专题--搜索专题,就是去年听了让我头都大的一个专题,这里面用到了各种“奇葩”的东西,比如当年的软肋--递归函数。搜索专题,平心而论,还是没有想象中的那么难以理解。常见的搜索算法分为了深度优先搜索(DFS),广度优先搜索(BFS),二分搜索,三分搜索。

所谓的BFS的思想就是从一个图的某一个顶点V0出发,首先访问和V0相邻的且未被访问过的顶点V1、V2、……Vn,然后依次访问与V1、V2…

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值