想参加acm
你们学校ACM搞的没什么名气,可能你花再多时间也不一定能有什么成绩,主要是搞ACM很费精力,如果没有很强烈的兴趣还有恒心与毅力以及一定的天赋的话,是没办法坚持下去的~如果真心想搞的话,那你找你们学校的计算机方面的老师问问,然后自己上几个OJ上刷刷题,像是HDOJ ZOJ POJ之类的,网址百度上都能搜到,另外就是买些算法方面的书,像是算法导论、算法艺术与信息学竞赛,那两本书就够用了,然后就是不断地练习、总结、练习、总结……一般想打到亚洲总决赛的水准的话,至少要每天平均8个小时的训练量……我现在也在搞ACM/ICPC,大家一起努力吧~
算法,数据结构是关键,另外还有组合数学,特别是集合与图论,概率论也重要。推荐买一本《算法导论》,那本书行,看起来超爽!!!基本掌握语法还不行啊,语法的超熟练掌握,不然出了错误很难调试的!!!最重要的是超牛皮的头脑啦,分析能力,逻辑推理能力很重要。ACM很好玩啦,祝你成功!!!
acm是3人一组的,以学校为单位报名的,也就是说要得到学校同意,还要有2个一起搞的。其实可能是你不知道你们学校搞acm的地方,建议你好好询问下你们学校管科技创新方面的人。建议你找几个兴趣相同的一起做,互相探讨效果好多了,团队合作也是acm要求的3大能力之一。
数据结构远远不够的,建议你看算法导论,黑书,oj的话个人觉得还是poj好,有水题有好题,而且做的人多,要解题报告什么的也好找。我们就是一些做acm的学生一起搞,也没老师,这样肯定能行的。
基础的话是语言,然后数据结构,然后算法。
ACM有三个方向:算法,数学,实现
要求三种能力:英文,自学,团队协作
简单的说,你要能读懂英文的题意描述,要有一门acm能使用的编程语言,要会数据结构,有一点数学基础,一点编程方面天赋,要有兴趣和毅力(最重要),就具有做ACM的基本条件了。
做acm我推荐c,c++也可以,java在某些情况下好用,但是大多数情况的效率和代码量都不大好,所以建议主用c++,有些题目用java
还有什么问题,可以问我啊。
不好意思,没见过用java描述的acm书籍,大多数是用伪命令,其他有的用的c,c++,老一些的用pascal。java只是用来做高精度的一些题的,个人觉得不用专门看这方面的书,java的基本部分学好就够用了。所以我还是推荐主用c++,在高精度和个别题再用java。你可以找找java描述的算法设计与分析,这个好像有
数据结构:C语言版 清华大学出版社 严蔚敏 《数据结构》
算法:清华大学出版社 王晓东 《算法设计与分析》
麻省理工大学 中译本:机械工业出版社 《算法导论》
基本上这三本书就已经足够了,建议一般水平的人先不要看算法导论,待另外两本书看的差不多的时候,再看算法导论加深理解。
另外还有很多针对性更强的书籍,不过针对性太强,这里就不多介绍了。
以上一些都是些算法方面的书,最好的方式就是做题与看书相结合,很多在线做题的网站,PKU,ZOJ很多,推荐PKU,题目比较多,参与的人比较多。做一段时间的题,然后看书,研究算法,再做题,这样进步比较快。
还有关于ACM竞赛,我有自己的一点话说。
首先说下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,这意味着我们不能存在“有了STL就可以不去管基本算法的实现”的想法;另外,熟练和恰当地使用STL必须经过一定时间的积累,准确地了解各种操作的时间复杂度,切忌对STL中不熟悉的部分滥用,因为这其中蕴涵着许多初学者不易发现的陷阱。
通过以上的分析,我们可以看出仅就信息学竞赛而言,对语言的掌握并不要求十分全面,但是对于经常用到的部分,必须十分熟练,不允许有半点不清楚的地方,下面我举个真实的例子来说明这个道理——即使是一点很细微的语言障碍,都有可能酿成错误:
在去年清华的赛区上,有一个队在做F题的时候使用了cout和printf的混合输出,由于一个带缓冲一个不带,所以输出一长就混乱了。只是因为当时judge team中负责F题的人眼睛尖,看出答案没错只是顺序不对(答案有一页多,是所有题目中最长的一个输出),又看了看程序发现只是输出问题就给了个Presentation error(格式错)。如果审题的人不是这样而是直接给一个 Wrong Answer,相信这个队是很难查到自己错在什么地方的。
现在我们转入第二个方面的讨论,基础学科知识的积累。
二、以数学为主的基础知识十分重要
虽然被定性为程序设计竞赛,但是参赛选手所遇到的问题更多的是没有解决问题的思路,而不是有了思路却死活不能实现,这就是平时积累的基础知识不够。今年World Final的总冠军是波兰华沙大学,其成员出自于数学系而非计算机系,这就是一个鲜活的例子。竞赛中对于基础学科的涉及主要集中于数学,此外对于物理、电路等等也可能有一定应用,但是不多。因此,大一的同学也不必为自己还没学数据结构而感到不知从何入手提高,把数学捡起来吧!下面我来谈谈在竞赛中应用的数学的主要分支。
1、离散数学——作为计算机学科的基础,离散数学是竞赛中涉及最多的数学分支,其重中之重又在于图论和组合数学,尤其是图论。
图论之所以运用最多是因为它的变化最多,而且可以轻易地结合基本数据结构和许多算法的基本思想,较多用到的知识包括连通性判断、DFS和BFS,关节点和关键路径、欧拉回路、最小生成树、最短路径、二部图匹配和网络流等等。虽然这部分的比重很大,但是往往也是竞赛中的难题所在,如果有初学者对于这部分的某些具体内容暂时感到力不从心,也不必着急,可以慢慢积累。
竞赛中设计的组合计数问题大都需要用组合数学来解决,组合数学中的知识相比于图论要简单一些,很多知识对于小学上过奥校的同学来说已经十分熟悉,但是也有一些部分需要先对代数结构中的群论有初步了解才能进行学习。组合数学在竞赛中很少以难题的形式出现,但是如果积累不够,任何一道这方面的题目却都有可能成为难题。
2、数论——以素数判断和同余为模型构造出来的题目往往需要较多的数论知识来解决,这部分在竞赛中的比重并不大,但只要来上一道,也足以使知识不足的人冥思苦想上一阵时间。素数判断和同余最常见的是在以密码学为背景的题目中出现,在运用密码学常识确定大概的过程之后,核心算法往往要涉及数论的内容。
3、计算几何——计算几何相比于其它部分来说是比较独立的,就是说它和其它的知识点很少有过多的结合,较常用到的部分包括——线段相交的判断、多边形面积的计算、内点外点的判断、凸包等等。计算几何的题目难度不会很大,但也永远不会成为最弱的题。
4、线性代数——对线性代数的应用都是围绕矩阵展开的,一些表面上是模拟的题目往往可以借助于矩阵来找到更好的算法。
5、概率论——竞赛是以黑箱来判卷的,这就是说你几乎不能动使用概率算法的念头,但这也并不是说概率就没有用。关于这一点,只有通过一定的练习才能体会。
6、初等数学与解析几何——这主要就是中学的知识了,用的不多,但是至少比高等数学多,我觉得熟悉一下数学手册上的相关内容,至少要知道在哪儿能查到,还是必要的。
7、高等数学——纯粹运用高等数学来解决的题目我接触的只有一道,但是一些题目的叙述背景往往需要和这部分有一定联系,掌握得牢固一些总归没有坏处。
以上就是竞赛所涉及的数学领域,可以说范围是相当广的。我认识的许多人去搞信息学的竞赛就是为了逼着自己多学一点数学,因为数学是一切一切的基础。
三、数据结构与算法是真正的核心
虽然数学十分十分重要,但是如果让三个只会数学的人参加比赛,我相信多数情况下会比三个只会数据结构与算法的人得到更为悲惨的结局。
先说说数据结构。掌握队列、堆栈和图的基本表达与操作是必需的,至于树,我个人觉得需要建树的问题有但是并不多。(但是树往往是很重要的分析工具)除此之外,排序和查找并不需要对所有方式都能很熟练的掌握,但你必须保证自己对于各种情况都有一个在时间复杂度上满足最低要求的解决方案。说到时间复杂度,就又该说说哈希表了,竞赛时对时间的限制远远多于对空间的限制,这要求大家尽快掌握“以空间换时间”的原则策略,能用哈希表来存储的数据一定不要到时候再去查找,如果实在不能建哈希表,再看看能否建二叉查找树等等——这都是争取时间的策略,掌握这些技巧需要大家对数据结构尤其是算法复杂度有比较全面的理性和感性认识。
接着说说算法。算法中最基本和常用的是搜索,主要是回溯和分支限界法的使用。这里要说的是,有些初学者在学习这些搜索基本算法是不太注意剪枝,这是十分不可取的,因为所有搜索的题目给你的测试用例都不会有很大的规模,你往往察觉不出程序运行的时间问题,但是真正的测试数据一定能过滤出那些没有剪枝的算法。实际上参赛选手基本上都会使用常用的搜索算法,题目的区分度往往就是建立在诸如剪枝之类的优化上了。
常用算法中的另一类是以“相似或相同子问题”为核心的,包括递推、递归、贪心法和动态规划。这其中比较难于掌握的就是动态规划,如何抽象出重复的子问题是很多题目的难点所在,笔者建议初学者仔细理解图论中一些以动态规划为基本思想所建立起来的基本算法(比如Floyd-Warshall算法),并且多阅读一些定理的证明,这虽然不能有什么直接的帮助,但是长期坚持就会对思维很有帮助。
四、团队配合
通过以上的介绍大家也可以看出,信息学竞赛对于知识面覆盖的非常广,想凭一己之力全部消化这些东西实在是相当困难的,这就要求我们尽可能地发挥团队协作的精神。同组成员之间的熟练配合和默契的形成需要时间,具体的情况因成员的组成不同而不同,这里我就不再多说了。
五、练习、练习、再练习
知识的积累固然重要,但是信息学终究不是看出来的,而是练出来的,这是多少前人最深的一点体会,只有通过具体题目的分析和实践,才能真正掌握数学的使用和算法的应用,并在不断的练习中增加编程经验和技巧,提高对时间复杂度的感性认识,优化时间的分配,加强团队的配合。总之,在这里光有纸上谈兵是绝对不行的,必须要通过实战来锻炼自己。
大家一定要问,我们去哪里找题做,又如何检验程序是否正确呢?这大可不必担心,现在已经有了很多网上做题的站点,这些站点提供了大量的题库并支持在线判卷,你只需要把程序源码提交上去,马上就可以知道自己的程序是否正确,运行所使用的时间以及消耗的内存等等状况。下面我给大家推荐几个站点,笔者不建议大家在所有这些站点上做题,选择一个就可以了,因为每个站点的题都有一定的难易比例,系统地做一套题库可以使你对各种难度、各种类型的题都有所认识。
1、Ural:
Ural是中国学生对俄罗斯的Ural州立大学的简称 ,那里设立了一个Ural Online Problem Set,并且支持Online Judge。Ural的不少题目算法性和趣闻性都很强,得到了国内广大学生的厚爱。根据“信息学初学者之家”网站的统计,Ural的题目类型大概呈如下的分布:
题型
搜索
动态规划
贪心
构造
图论
计算几何
纯数学问题
数据结构
其它
所占比例
约10%
约15%
约5%
约5%
约10%
约5%
约20%
约5%
约25%
这和实际比赛中的题型分布也是大体相当的。有兴趣的朋友可以去看看。
2、UVA:
UVA代表西班牙Valladolid大学(University de Valladolid)。该大学有一个那里设立了一个PROBLEM SET ARCHIVE with ONLINE JUDGE ,并且支持ONLINE JUDGE,形式和Ural大学的题库类似。不过和Ural不同的是,UVA题目多的多,而且比较杂,而且有些题目的测试数据比较刁钻。这使得刚到那里做题的朋友往往感觉到无所适从,要么难以找到合适的题目,要么Wrong Answer了很多次以后仍然不知道错在那里。 如果说做Ural题目主要是为了训练算法,那么UVA题目可以训练全方位的基本功和一些必要的编程素质。UVA和许多世界知名大学联合办有同步网上比赛,因此那里强人无数,不过你先要使自己具有听懂他们在说什么的素质:)
3、ZOJ:
ZOJ是浙江大学建立的ONLINE JUDGE,是中国大学建立的第一个同类站点,也是最好和人气最高的一个,笔者和许多班里的同学就是在这里练习。ZOJ虽然也定位为一个英文网站,但是这里的中国学生比较多,因此让人觉得很亲切。这里目前有500多道题目,难易分配适中,且涵盖了各大洲的题目类型并配有索引,除此之外,ZOJ的JUDGE系统是几个网站中表现得比较好的一个,很少出现Wrong Answer和Presentation error混淆的情况。这里每月也办有一次网上比赛,只要是注册的用户都可以参加。
说起中国的ONLINE JUDGE,去年才开始参加ACM竞赛的北京大学现在也建立了自己的提交系统;而我们学校也是去年开始参加比赛,现在也有可能推出自己的提交系统,如果能够做成,到时候大家就可以去上面做题了。同类网站的飞速发展标志着有越来越多的同学有兴趣进入信息学的领域探索,这是一件好事,同时也意味着更激烈的竞争。
不需要具备什么外在的条件,只要你编程能力够强就行,ACM比赛都是以学校的名义参加的,你们学校会进行选拔。如果你真想参加比赛,建议试着做到以下几点。
1、C或者C++必须精通一门,书上的题目一道不落的全部独立调试出来,这是打牢语言基本功最有效的途径,千万不要感觉书上的题简单,就不去做。
2、多看一些ACM相关的书,如《C++Primer》,《数据结构》,《离散数学》,你上淘宝搜ACM 会出来一些诸如《图论》《计算几何》《数论》等方面的书,这都是一个资深Acmer必看之书。
3、最关键的就是你的A题量了,网上有很多可以在线做题的网站,想poj,light oj ,nyoj ,hdu等,你直接百度可以搜到很多,尽管做,题目很多,保管让你过足题瘾。系统会为你判断正误,如果碰到不会的,直接百度搜结题报告,A的题多了,水平就上去了。“一天一道题,一年后你就能成为编程高手”。
祝你好运!
acm考试的难度如何?
4.团队合作:ACM考试通常是以团队形式进行的,考生需要在有限的时间内与队友合作解决问题。这要求考生具备良好的沟通能力和团队合作精神。5.竞争激烈:ACM考试是一项全球性的竞赛,每年有数以万计的学生参加。因此,考生需要具备出色的编程能力和解题技巧才能在竞争中脱颖而出。综上所述,ACM考试的难度较...
ACM有必要参加吗?
参加ACM主要是看兴趣,喜欢算法就去参加,不喜欢的就不要去参加了。功利性 毕竟我确实一直打的都很功利,如果没能在这么好的竞赛政策的学校,我可能首银或首铜就退役了。而算法竞赛在当今大环境下确实是在走下坡路,大家都在神化ACM的作用,不论是研究生面试还是就业领域,ACM的作用远没有你想象的...
编程考试哪个权威
ACM注重考察选手的团队合作能力。ACM考试注重实际问题解决能力的培养,强调选手在一定时间内完成多道难题。3、国际化影响力 ACM举办的国际程序设计竞赛吸引了全球众多顶尖高校的参与,其考试内容和标准符合国际科学技术发展的潮流。参加ACM考试可以展示个人在国际计算机科学领域的竞争力。
acm是什么比赛
ACM竞赛以团队的形式代表各学校参赛,每队由至多3名队员组成。每位队员必须是在校学生,有一定的年龄限制,并且每年最多可以参加2站区域选拔赛。程序完成之后提交评测机运行,运行的结果会判定为正确或错误两种并及时通知参赛队。ACM竞赛由各大洲区域预赛和全球总决赛两个阶段组成。决赛安排在每年的3-5月...
acm竞赛的含金量
ACM国际大学生程序设计竞赛已成为世界各国大学生最具影响力的国际级计算机类的赛事,是广大爱好计算机编程的大学生展示才华的舞台,是著名大学计算机教育成果的直接体现,是信息企业与世界顶尖计算机人才对话的最好机会。该项竞赛分区域预赛和国际决赛两个阶段进行,各预赛区第一名自动获得参加世界决赛的资格,...
大一学生怎样参与ACM\/ ICPC?
acm建议大一就接触。各大互联网公司招聘都是看能力,而不是看你在大学得的分有多高,或是保研保到了哪个名牌高校。而在ACM中拿奖则是能力的体现,可以在应聘时让考官对你刮目相看。而如果你没参加过ACM,大公司根本就不会要你。对于并不能确保拿到奖牌的,或者说大学前没有接触没有编程基础的,...
acm报名了不去参加可以吗
可以。根据查询百度百科得知,ACM报名后可以不去参加。ACM比赛是由各个学校或者团队自愿参加的,参加后也可以选择退出。
怎样才能参加ACM国际大学生程序设计竞赛
参加ACM国际大学生程序设计竞赛,需要通过学校报名组队参加;ACM国际大学生程序设计竞赛(英文全称:ACM International Collegiate Programming Contest(简称ACM-ICPC或ICPC))是由美国计算机协会(ACM)主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过近40年...
计算机专业大学生可以参加的竞赛有哪些?如何准备?
计算机专业大学生可以参加的竞赛有很多,以下是一些常见的竞赛:1. ACM国际大学生程序设计竞赛:这是计算机领域最具影响力的竞赛之一,要求参赛者在规定时间内解决一系列算法问题。准备方法包括刷题、参加训练班和组队合作。2. 全国大学生数学建模竞赛:这个竞赛要求参赛者运用数学模型解决实际问题。准备方法...
参加ACM到底要不要达到非常高深的数学水平才可以?
确实需要。一般来说,在单纯学习算法到一定程度时大家的水平都差不多,但是想要更进一步就需要非常扎实的数学功底,数学并不一定指的是数论和组合数学,更为确切地说应该是一种剖析、思考的高效方式。于是很容易地发现问题的本质,就可以产生清晰的解题思路,在套用自己学过的算法就成了,中级水平的acmer...
司马胖盐酸: 我就是华科acm队的,大一开学时老师都会到计算机系招人,几乎是无要求的,0基础也可以,比如我.然后就要开始训练,刷题了.开始加入的人挺多,但能坚持下来的不多,很多都退了.. 这个关键就是要自己努力. 前几年 有学长进了final 20名. 我们前任队长拿了2银,现在已经保研北大了
开封市13265364119: 怎么参加ACM啊? - ?
司马胖盐酸: 你们学校ACM搞的没什么名气,可能你花再多时间也不一定能有什么成绩,主要是搞ACM很费精力,如果没有很强烈的兴趣还有恒心与毅力以及一定的天赋的话,是没办法坚持下去的~如果真心想搞的话,那你找你们学校的计算机方面的老师问问,然后自己上几个OJ上刷刷题,像是HDOJ ZOJ POJ之类的,网址百度上都能搜到,另外就是买些算法方面的书,像是算法导论、算法艺术与信息学竞赛,那两本书就够用了,然后就是不断地练习、总结、练习、总结……一般想打到亚洲总决赛的水准的话,至少要每天平均8个小时的训练量……我现在也在搞ACM/ICPC,大家一起努力吧~
开封市13265364119: 本人想参加ACM,大一,没有基础,学数学专业,我知道很难,有希望么?要做什么准备 - ?
司马胖盐酸: 说实话很难,虽然不是一点希望都没有. 但如果你非常有兴趣,觉得自己理性思维能力很惊人,就可以尝试,因为你还是大一,所以还有希望. 注意ACM是编程方面的竞赛,所以你要有一门熟练的编程语言,这是基础. ACM有三个方向:算法,数...
开封市13265364119: 我想参加acm,能说下怎么学习吗 - ?
司马胖盐酸: ACM的话,你需要注意几点 首先:是内存问题,ACM的得分不仅要看你的程序是否能跑,还要看你的内存占用量,肯定是越少越好.第二:你必须弄懂每个语句是什么意思,如何使用,因为有时候题目会有要求限制你要用什么,不能用什么,这时候很考验你.第三:就是独立思考的能力,ACM不同于普通的团队开发,它是一个靠个人独立完成的东西,比赛的时候大多是一人会一题就速度做出来了,有时候,你们训练的时候,会为了一题,一个人想一星期,而不去问同学.所以说,注意以上几点就OK,最后说,ACM其实没什么必要,对以后没帮助的.呵呵呵,如果满意回答,请采纳
开封市13265364119: ACM大赛的参赛条件是什么? - ?
司马胖盐酸: ACM大赛的参赛条件包括以下几个方面:1. 选手必须是正在主管学校攻读学位并已读完至少一半时间的学生.2. 每支队伍最多允许有一名选手具有学士学位(就是说至少有两个还没有取得学士学位),已经参加两次决赛的选手不得再参加区域竞赛.3. 取得学士学位超过两年,或进行研究生学习超过两年的学生不符合参赛队员的资格.4. 任何参加过两次决赛或四次地区预赛的学生不得参加地区预赛或者世界决赛.5. 每位参赛选手参加本届预赛最多不超过两个赛区.6. 报名根据先来先服务的原则进行办理.需要注意的是,以上的参赛条件可能会随着时间的推移而变化,建议在参赛前仔细确认官方最新的规则和要求.
开封市13265364119: 想参加ACM,需要具备哪些方面的数学知识 - ?
司马胖盐酸: ACM涉及的面很广的,有图论,数论,组合数学,数据结构,当然C语言一定要好,不好也没关系,多练习就行了. 当然你不会上面这些东西也没关系,多练习,只要用心去学,我也是参加ACM的,刚开始也不知道ACM是什么,也不知道要学什么,就是看到什么东西常用就去学了,都是兴趣而已. 我现在已经做了一千多题了,毕业了,没时间做了,
开封市13265364119: 我是软件工程专业的大一学生.想参加ACM竞赛 以前没接触过着专业.该怎么做啊 大家指导下.先谢谢 - ?
司马胖盐酸: 在网上先下一份ACM的题目分类,你可以先根据上面的提示试着做一些水题,慢慢的积累知识,不会的可以参考Discuss里的其他人的思路,多练多做,当然你要会C语言,C++也要掌握,加油吧·
开封市13265364119: 现在大一,想参加ACM比赛,需要准备什么?现在正在学C - ?
司马胖盐酸: 现在可以试着做几道简单的题,但主要还是从理论入门.看一些算法的书,比如说《离散数学》,《算法导论》,《程序设计导引及在线实践》等.或者再了解一般都使用了哪些算法,从最简单,最常用的算法开始慢慢入手
开封市13265364119: 参加ACM需要准备哪些知识? 谢谢. - ?
司马胖盐酸: 学ACM要熟练C语言的基础语法,对编程有很大的兴趣,还要学关于数据结构的知识.内容大多数是考数据结构,例如:深度搜索(dfs)、广度搜索(bfs)、并查集、母函数、最小生成树、数论、动态规划(重点)、背包问题、最短路、网络...
开封市13265364119: acm大赛是什么?想参加应该丰富那方面知识?编程时主要用那类语言?用什么运行已编好的程序? - ?
司马胖盐酸: acm是程序设计大赛,想参加至少得有基础的数据结构和算法的知识.编程主要是JAVA、C/C++、Pascal,当然各个竞赛和OJ都有一些不同,这三个一般都是支持的.运行程序的IDE有很多,这要看你自己的熟悉哪种语言,习惯什么编译器了.一般像DEV、codeblocks、shell、Eclipse等等都有的.