欢迎来到天天文库
浏览记录
ID:41582380
大小:71.22 KB
页数:13页
时间:2019-08-28
《acm大牛总结的资料》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、ACM资料(-)不可能都完全记住那么多的算法.常用算法,拿过来就可以写出來不常用的,拿起书来,看10分钟,就能理解算法(因为以前记过).对以前没有记过的算法,就不好说了,难的可能要研究好儿天.这样就可以了.应该熟练掌握的常用的算法应该有:各种排序算法(插入排序、冒泡排序、选择排序,快速排序,堆排序,归并排序)线性表(一般的线性表,栈,队列啲插入和删除二叉树的遍历(前序,中序,后序)图的遍历(深度优先,广度优先)二分法查找,排序二叉树,Hash查找(处理冲突的方法)。(二)分析一个东西,你可以用不同的眼光去看待,有很多时候,就跟自己生
2、活一样,觉得小时候看待问题很幼稚,现在看问题全面了,而且方式不一样了,为什么,就是成长吧,就跟这个一样的,你对算法,比如写一个程序,可能直接写很简单,可是可以有一些有趣的方式,比如通过什么样来表达,怎么样更高效.•等等吧(三)于大学里把基本的专业课学扎实就ok,如:数据结构,离散,操作系统等。碰到一些基本的数据结构和算法,如查找排序要根据原理马上能写出相应的代码就行了,我个人是这样理解的,对于更深层次的东西,也是建立在自己熟练的基础之上的吧(四)算法与数据结构考验试题精析》第2版机械工业出版社如果你想练习的话,这里有N多的题可以来练
3、习,但实际屮能用到的比较少,除非搞一些高端的玩意,不过平时也可以在自己的项目中结合使用(五)数据结构在平时可能用不上,但数据结构可以培养你程序时如果注意效率的意识,一个学过数据结构的人和一个没有学过数结构的人写出來的程序可能在效率上有差别。(六)搞ACM需要的掌握的算法.要注意,ACM的竞赛性强,因此自己应该和自己的实际应用联系起来.适合自己的才是好的,有的人不适合搞算法,喜欢系统架构,因此不要看到别人什么就眼红,发挥自己的长处,这才是重要的.竞赛组织竞赛在由各高等院校派出的3人一组的队伍间进行,分两个级别。参赛队应首先参加每年9月
4、至11月在世界各地举行的“区域竞赛(RegionalContest)"。各区域竞赛得分最高的队伍自动进入笫二年3月在美国举行的“总决赛(FinalContest)",其它的高分队伍也有可能被邀请参加决赛。每个学校有一名教师主管队伍,称为"领队"(facultyadvisor),他负责选手的资格认定并指定或自己担任该队的教练(coach)o每支队伍最多由三名选手(contestant)组成,每个选手必须是正在主管学校攻读学位的学生。每支队伍最多允许有一名选手具有学士学位,已经参加两次决赛的选手不得再参加区域竞赛。竞赛形式与评分办法竞赛
5、进行5个小时,一般有6~8道试题,由同队的三名选手使用同一台计算机协作完成。当解决了一道试题之后,将其提交给评委,由评委判断其是否正确。若提交的程序运行不正确,则该程序将被退回给参赛队,参赛队可以进行修改后再一次提交该问题。程序运行不正确是指出现以下4种情况之一:⑴运行出错(run・timeerror);(2)运行超时(time-limitexceeded);(3)运行结果错误(wronganswer);(4)运行结果输出格式错误(presentationerror)。竞赛结束后,参赛各队以解出问题的多少进行排名,若解出问题数相同,
6、按照总用时的长短排名。总用时为侮个解决了的问题所用时间Z和。一个解决了的问题所用的时间是竞赛开始到提交被接受的时间加上该问题的罚时(每次提交通不过,罚时20分钟)。没有解决的问题不记时。美国英语为竞赛的工作语言。竞赛的所有书面材料(包括试题)将用美国英语写出,区域竞赛中可以使用其它语言。总决赛可以使用的程序设计语言包括PASCAL,C,C++及Java,也可以使用其它语言。具体的操作系统及语言版本各年有所不同。竞赛奖励情况总决赛前十名的队伍将得到高额奖学金:第一名奖金为12000美元,第二名奖金为6000美元,第三名奖金为3000美
7、元,第四名至第十名将各得到1500美元。除此之外还将承认北美冠军、欧洲冠军、南太平洋冠军及亚洲冠军。ACM竞赛需要的知识1=1无论侧重于什么方面,只要是通过计算机程序去最终实现的竞赛,语言都是大家要过的第一道关。亚洲赛区的比赛支持的语言包插C/C++与JAVA。首先说说JAVA,众所周知,作为而向对象的王牌语言,JAVA在大型工程的组织与安全性方而有着自己独特的优势,但是对于信息学比赛的具体场合,JAVA则显得不那么合适,它对于输入输出流的操作相比于C++要繁杂很多,更为重要的是JAVA程序的运行速度要比C++慢10倍以上,而竞赛中
8、对于JAVA程序的运行时限却往往得不到同等比例的放宽,这无疑对算法设计提出了更高的要求,是相当不利的。其实,并不主张大家在这种场合过多地运用面向对象的程序设计思维,因为对于小程序来说这不旦需要花费更多的时间去编写代码,也会降低程序的执
此文档下载收益归作者所有