ACM学习建议.docx

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ACM学习建议

ACM学习建议2008-05-07 09:36一位高手对我的建议:???? 一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.acm主要是考算法的,主要时间是花在思考算法上,不是花在写程序与debug上。?下面给个计划你练练:第一阶段:??? 练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打出来.?1.最短路(Floyd、Dijstra,BellmanFord)?2.最小生成树(先写个prim,kruscal要用并查集,不好写)?3.大数(高精度)加减乘除?4.二分查找. (代码可在五行以内)?5.叉乘、判线段相交、然后写个凸包.?6.BFS、DFS,同时熟练hash表(要熟,要灵活,代码要简)?7.数学上的有:辗转相除(两行内),线段交点、多角形面积公式.?8. 调用系统的qsort, 技巧很多,慢慢掌握.?9. 任意进制间的转换第二阶段:??? 练习复杂一点,但也较常用的算法。?如:?1. 二分图匹配(匈牙利),最小路径覆盖?2. 网络流,最小费用流。?3. 线段树.?4. 并查集。?5. 熟悉动态规划的各个典型:LCS、最长递增子串、三角剖分、记忆化dp?6.博弈类算法。博弈树,二进制法等。?7.最大团,最大独立集。?8.判断点在多边形内。?9. 差分约束系统.?10. 双向广度搜索、A*算法,最小耗散优先.第三阶段:??? 前两个阶段是打基础,第三阶段是锻炼在比赛中可以快速建立模型、想新算法。这就要平时多做做综合的题型了。?1. 把oibh上的论文看看(大概几百篇的,我只看了一点点,呵呵)。?2. 平时扫扫zoj上的难题啦,别老做那些不用想的题.(中大acm的版主经常说我挑简单的来做:-P )?3. 多参加网上的比赛,感受一下比赛的气氛,评估自己的实力.?4. 一道题不要过了就算,问一下人,有更好的算法也打一下。?5. 做过的题要记好 :-)?马牛的acm学习(第一天)-我找资源,我找~?收藏  今天是2005年秋季学期考完试后的第一天,想着前面好几门都应该过了,难道败在最后考的物理上?oh,yeah~不管了。我们来学acm。  今天为以后一段时间的学习积累点学习资源。初学guide:?=======================================================ACM竞赛之新人向导(收藏)???原创:怒火之袍 2003年4月29日我们学校的计算机学院从去年起开始组织学生参加世界上最具权威性的大学生程序设计竞赛——ACM/ICPC。从这学期开始,学院计划有组织地进行训练和讲座,以帮助大家在有限的时间内尽可能多地提高自己的能力,这对有兴趣投入数据结构与算法研究的同学来说无疑是一件好事。但是,刚刚接触信息学领域的同学往往存在很多困惑,不知道从何入手学习,在这篇文章里,我希望能将自己不多的经验与大家分享,希望对各位有所帮助。一、语言是最重要的基本功无论侧重于什么方面,只要是通过计算机程序去最终实现的竞赛,语言都是大家要过的第一道关。亚洲赛区的比赛支持的语言包括C/C++与JAVA。笔者首先说说JAVA,众所周知,作为面向对象的王牌语言,JAVA在大型工程的组织与安全性方面有着自己独特的优势,但是对于信息学比赛的具体场合,JAVA则显得不那么合适,它对于输入输出流的操作相比于C++要繁杂很多,更为重要的是JAVA程序的运行速度要比C++慢10倍以上,而竞赛中对于JAVA程序的运行时限却往往得不到同等比例的放宽,这无疑对算法设计提出了更高的要求,是相当不利的。其实,笔者并不主张大家在这种场合过多地运用面向对象的程序设计思维,因为对于小程序来说这不但需要花费更多的时间去编写代码,也会降低程序的执行效率。接着说C和C++。许多现在参加讲座的同学还在上大一,C的基础知识刚刚学完,还没有接触过C++,其实在赛场上使用纯C的选手还是大有人在的,它们主要是看重了纯C在效率上的优势,所以这部分同学如果时间有限,并不需要急着去学习新的语言,只要提高了自己在算法设计上的造诣,纯C一样能发挥巨大的威力。而C++相对于C,在输入输出流上的封装大大方便了我们的操作,同时降低了出错的可能性,并且能够很好地实现标准流与文件流的切换,方便了调试的工作。如果有些同学比较在意这点,可以尝试C和C++的混编,毕竟仅仅学习C++的流操作还是不花什么时间的。C++的另一个支持来源于标准模版库(STL),库中提供的对于基本数据结构的统一接口操作和基本算法的实现可以缩减我们编写代码的长度,这可以节省一些时间。但是,与此相对的,使用STL要在效率上做出一些牺牲,对于输入规模很大的题目,有时候必须放弃STL,这意味着我们不能

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档