来自牛人的ACM经验

合集下载

ACM组队经验及建议

ACM组队经验及建议

没AC
• 不要没怎么改又反复提交,会影响成绩的, 仔细查查哪里有错了,跟队友讨论讨论, 有一定把握了再交下一次,否则罚时很不 值得。 • 有的时候可以考虑打表,随机算法什么的, 看看能不能混过去~ • 当然,如果比赛快结束了,那能交的就尽 量交,万一AC就赚了~
细心
• • • • • • 初始化 控制精度 输出格式 数据类型选择 数组开的大小是否合适(避免MLE,RE) ……等等
Hale Waihona Puke • 愿大家找到合适的队友~ • 别忘了给自己的队起一个很酷的队名,在 各大OJ上面注册共用帐号~
选题
• 确实思路有把握了再去做那个题目,如果 一时选不出简单的题目可以看看别人都在 提交哪些题目,对自己是一个参考。 • 不要认为题目长就难,往往容易的题目很 长。
写代码
• 写代码之前如果把握不大最好和队友确认 一下思路的正确性,加强讨论。 • 一个人在写代码的时候,根据题目难易程 度不同,另外两个人可以同时帮着检查, 也可以继续想其他题目。 • 写代码风格要好,不一定非常规矩,但要 让队友容易看懂。
讨论
• 对于难题要讨论,不要怕自己想的思路不 好就不跟队友讨论,一个不太正确的思路 也许对别人有启发作用。 • 提交未通过的时候要讨论,当局者迷,写 代码的人看不出来的错误也许旁观者一眼 就找到了。
总结模板
• 有一些代码的模板性很强,自己写过的代 码可以整理一下,对于通用性比较强的程 序以后遇到了类似题目可以拿出来再用
交代码
• 交代码之前看看ranklist (score board),别 人如果错了好几次的话,最好先检查一下 自己的代码是不是有什么漏洞 • 现场赛不可以看到别人是怎么错的,但是 平时可以,如果别人有TLE,就要考虑自己 算法的时间复杂度,如果别人有WA,就要 考虑自己程序对特殊数据的处理好不好, 如果别人PE,就仔细看看自己的输出格式

ACM程序设计竞赛入门手册秘笈《ACM经验谈》

ACM程序设计竞赛入门手册秘笈《ACM经验谈》

ACM经验谈一、题数取胜•两队题数相同时比较其Penalty(罚分),以罚分较小者为胜队。

•Penalty的计算方式:任何一道题得到Yes的响应(正确无误)后就会加上一个Penalty(罚分)的数值,其值等于从比赛开始到该正确答案被送去的分钟数加上20×之前该题被送去并且错误的次数。

More about Penalty•只有该题正确后才会将罚分值列入计算!※解题策略:应该先做简单题ACM题目特性二、我们的比赛模式•十五分钟内找出最简单的一题开始作•另外两个人在三十分钟内简读完所有题目,并且大略估计出每题的难易度•第一题尽量在四十分钟内完成•两个小时内应该解出三题•此后行有余力则三个人各自攻一题,否则一人去解第四题,另两人解第五题•负责解某一题的人应确实将题目清楚读过一遍,并且确认输出入应注意之处•测试数据正确后,继续测试极端值以及自己或队友想出来的测试数据•要是计算机有人用,就在纸上预先写程序代码•若是答案错了,立刻下机在纸上侦错,此时计算机应由第二个人使用,第三个人则可帮忙找错误之处二、我们的比赛模式(Cont.)•在开始做之前,把题目跟自己想出来的解法跟另一个人解释,待另一个人同意后才正式开始写这题•送题目之前要打印•如果需要换手,下机之前也要打印,然后在印好的程序上继续写code关于题目的要求•再简单的题目也会有陷阱!Ex:输入一整数n,输出从1到n的所有整数之和。

Sample Input:3100Sample Output:65050关于输出入的格式•请务必精读,特别是空白、换行、精确度(包括是否要四舍五入) 等一定要搞清楚•避免拼字错误!•送审前务必再将输入Sample Input的结果与Sample Output对一次•一定要测试极端值,包括所有你能够想到最表*的输入(* 表: 机车、难缠…)关于题目的类型一般来说,越下面的题型越难•简单题或数学题•DP•Graph•仿真题,字符串处理题•Compiler•几何题三、赛前准备方法※个人功力的磨练l 到网站上解Online Judge的题目l 熟读数据结构与算法l 练习看题目,多读题,不做也没关系l 熟悉比赛环境(VAC) ,记忆其快速键!l 增进写程序的速度和正确性l 纸上coding的能力l Debug的技巧※团队合作l 三个人抽时间进行模拟演练,一周至少一次,并且检讨时间分配与合作模式l 每个人都知道彼此的长处,适合解哪一类型的题目l 一起讨论题目的做法以及算法l 熟悉彼此写程序的习惯,练习互相看codel 经由合作的经验改进自身写程序的技巧四、检讨方式n 每次仿真时最好找个人帮忙纪录时间分配,开赛几分钟后谁在做什么事,还有计算机的使用情形,列出一张时间表。

ACM比赛经验

ACM比赛经验

1. 比赛中评测会有些慢,偶尔还会碰到隔10分钟以上才返回结果的情况,这段时间不能等结果,必须开工其他题,如果WA,两道题同时做。

交完每道题都要先打印。

2. 比赛时发的饭不是让你当时就吃的,那是给你赛后吃的。

基本上比赛中前几名的队都没人吃,除非领先很多。

3. 很多选手,尤其是第一次参加比赛的,到一个新环境,全当旅游了,参观的参观,找同学的找同学,玩玩乐乐就把正事抛到脑后了,结果比赛自然没什么好成绩,这样的例子太多了。

所以到参赛地后要时刻不忘自己是来比赛的,好好休息、备战。

4. 参赛前一天要睡10个小时以上,非常有助于保持比赛中的精力,很多时候比赛到3个多小时队员就没劲了就是这个原因。

前一天晚饭与当天早饭要吃好,理由同上,要知道下顿饭得下午3点赛后才能吃。

5. 到新环境,时刻注意远离疾病,感冒肠炎病不大,却是成绩的天敌。

6. 英语不好,看不懂的,要勤查词典,懒一次就少一道题,远离奖牌。

7. 可以紧张,杜绝慌张,慌张是出题的敌人,任何时候,如果发现自己或者队友出现慌张的情况,提醒深呼吸。

8. 照着纸敲代码和sample数据时不要敲错,特别注意文字信息。

9. 第一道简单题交给队中最稳的人做,万一遇到麻烦也不要慌,如果有很多队都出了就更不必着急了,它必定是简单题,必定是可以很快做出来的,晚几分钟也比罚掉20分好。

另外注意不要PE。

10. 最后一小时是出题高峰,谁松懈,谁落后。

最后一小时出一道是正常,出两道更好。

以上各条均有出处,每条都包含着以往教训,每条都可能浪费掉你一年的努力,不可小视。

以下各条有些来自于其他学校,有些是总结:11. 无论是否有人通过,所有题必须全读过,最好每道题都有两人以上读过,尽量杜绝讲题现象。

要完全弄清题意,正确的判断出题目的难易,不要想当然。

12. 虽然讨论有助于出题,但是以往每赛区第一名基本都是各自为战,但是互相了解,觉得一道题适合其他人做就转手。

13. 保持头脑灵活,在正常方法不行时想想歪门邪道,比如换种不常见的特殊的数据结构,加预处理,限时搜索等。

牛人的建模经验

牛人的建模经验

牛人建模经验谈虽然也提到了全国赛,但主要是针对美赛的。

搞数学建模时间也算是不短了,也参加了大大小小好几次比赛了,也获了大大小小的不少奖,在参加建模竞赛中积累了不少的经验。

尤其是参加了两次全国赛愈加感到要在全国赛中取得好成绩经验第一,运气第二,实力第三,这种说法是功利了点,但是在现在中国这种科研浮躁的大环境中要在全国赛中取得好成绩经验是首要的。

这并不说明美赛中经验不重要,在美赛中经验也是首位的,但是较之全国赛就差的远多了,这是由于两种比赛的不同性质造成的。

全国赛注重"稳",与参考答案越接近,文章通顺就可以有好成绩了,美赛则注重"活",只要有道理,有思想就会有不错的成绩,这个也体现了两个国家的教育现状,这个就不扯开去了。

在数模竞赛中经验会告诉我们该怎么选题,怎么安排时间,怎么控制进度,知道什么是最重要的,该怎么写论文......,或许有人会认为选题也需要经验吗?经过参加了多次比赛后觉的是有技巧的,选个好题成功的机会就大的多,选题不能一味的根据自己的兴趣或能力去选,还要和全体参赛队互动下(这个开玩笑了,不大容易做到,只能是在极小的范围内做到),分析下选这个题的利弊后决定选哪个题,这里面道道也不少,后面会详细的展开谈谈。

写这个东西当做是回忆下以前的点点滴滴,希望自己的经验能帮助一些新手(这样的说法不大好,暂时想不出更好的,凑活着先用着)能尽快的成长,尽快的发挥自己的能力,体验数学在应用中的作用,爱上数学,甚至和数学打一辈子交道。

国防科大数学建模网的路过(向为)前辈曾经写过个新手教程,写的十分的好,希望偶写的这个能延续他写的那个教程,能给大家哪怕一点点的帮助。

组队和分工数学建模竞赛是三个人的活动,参加竞赛首要是要组队,而怎么样组队是有讲究的。

此外还需要分工等等一般的组队情况是和同学组队,很多情况是三个人都是同一系,同一专业以及一个班的,这样的组队是不合理的。

让三人一组参赛一是为了培养合作精神,其实更为重要的原因是这项工作需要多人合作,因为人不是万能的,掌握知识不是全面的,当然不排除有这样的牛人存在,事实上也是存在的,什么都会,竞赛可以一个人独立搞定。

acm大牛总结的资料

acm大牛总结的资料

ACM资料(一)不可能都完全记住那么多的算法.常用算法,拿过来就可以写出来不常用的,拿起书来,看10分钟,就能理解算法(因为以前记过).对以前没有记过的算法,就不好说了,难的可能要研究好几天.这样就可以了.应该熟练掌握的常用的算法应该有:各种排序算法(插入排序、冒泡排序、选择排序,快速排序,堆排序,归并排序)线性表(一般的线性表,栈,队列)的插入和删除二叉树的遍历(前序,中序,后序)图的遍历(深度优先,广度优先)二分法查找,排序二叉树,Hash查找(处理冲突的方法)。

(二)分析一个东西,你可以用不同的眼光去看待,有很多时候,就跟自己生活一样,觉得小时候看待问题很幼稚,现在看问题全面了,而且方式不一样了,为什么,就是成长吧,就跟这个一样的,你对算法,比如写一个程序,可能直接写很简单,可是可以有一些有趣的方式,比如通过什么样来表达,怎么样更高效..等等吧(三)于大学里把基本的专业课学扎实就ok,如:数据结构,离散,操作系统等。

碰到一些基本的数据结构和算法,如查找排序要根据原理马上能写出相应的代码就行了,我个人是这样理解的,对于更深层次的东西,也是建立在自己熟练的基础之上的吧(四)算法与数据结构考验试题精析》第2版机械工业出版社如果你想练习的话,这里有N多的题可以来练习,但实际中能用到的比较少,除非搞一些高端的玩意,不过平时也可以在自己的项目中结合使用(五)数据结构在平时可能用不上,但数据结构可以培养你程序时如果注意效率的意识,一个学过数据结构的人和一个没有学过数结构的人写出来的程序可能在效率上有差别。

(六)搞ACM需要的掌握的算法.要注意,ACM的竞赛性强,因此自己应该和自己的实际应用联系起来.适合自己的才是好的,有的人不适合搞算法,喜欢系统架构,因此不要看到别人什么就眼红,发挥自己的长处,这才是重要的.竞赛组织竞赛在由各高等院校派出的3人一组的队伍间进行,分两个级别。

参赛队应首先参加每年9月至11月在世界各地举行的“区域竞赛(Regional Contest)”。

acm经验

acm经验

6.特别需要注意的地方:(1).在G++/GCC下'main'函数必须定义成int型,定义成void main会得到'Compilation Error'。

(2).In function `int main()':error: name lookup of `i' changed for new ISO `for' scopingerror: using obsolete binding at `i'这个是你在当前for里定义了i,那么其作用域只限于当前for循环里面,在下一个for里直接调用了i将出现此错误。

7.效率问题:一般情况下,C语言运行时I/O函数比C++的效率高一些,所以处理大数据量的时候,建议使用scanf/printf组合8.提交题目常见结果:(1).Accepted (AC) : 您的程序是正确的,恭喜!(2).Presentation Error (PE) : 虽然您的程序貌似输出了正确的结果,但是这个结果的格式有点问题。

请检查程序的输出是否多了或者少了空格(' ')、制表符('\t')或者换行符('\n')。

(3).Wrong Answer (WA) : 输出结果错,这个一般认为是算法有问题。

(4).Runtime Error (RE) : 运行时错误,这个一般是程序在运行期间执行了非法的操作造成的。

以下列出常见的错误类型:ACCESS_VIOLATION 您的程序想从一些非法的地址空间读取或向其中写入内容。

一般例如指针、数组下标越界都会造成这个错误的。

ARRAY_BOUNDS_EXCEEDED 您的程序试图访问一个超出硬件支持范围的数组单元。

INTEGER_DIVIDE_BY_ZERO 在进行整数除法的时候出现了除数为零的异常。

STACK_OVERFLOW 栈溢出。

ACM 学习心得

ACM 学习心得

学习ACM后的总结和下学期的计划大二上半学期,由于报了大学生电子商务竞赛而进入实验室。

在大一时,比较迷茫,不知道自己的专业什么内容重要,什么内容不重要。

所以在大一下半学期学习C语言这门最基础的程序设计课的时候,老师上课在讲自己也不认真听讲。

觉得只要考试能过就行了。

结果考试是过了,但对于C语言还是一窍不通。

在大二下班学期,由于选了面向对象程序设计和数据结构,老师的内容不怎么听的懂。

开始认识到C语言的重要性,自己从头开始自学,把非计算机专业的C语言借来看,慢慢的赶上去,不懂的就问问同学。

把书认真的看了两遍后,再接触接触计量OJ上的题目提高一下自己。

就这样我开始接触了ACM。

ACM=算法+数据结构。

第一次接触ACM,刚开始做简单题的时候我也感觉并不容易,比如有些英文题目看起来比较费劲,要看很久才能搞清楚题目意思,有时候简单题目交上去不正确,题目有很多trick,有时候代码看多了,人就会觉得很厌倦和郁闷,但是不要灰心,我觉得做什么事贵在坚持,只要坚持下来,就会越来越体会到ACM 的无穷乐趣了。

后来自己独立思考,把一些没有算法的题目基本上都提交成功了。

也觉得有一些成就感,从一点都不会到现在能把一些简单的题目解决。

有算法的题目,就自己百度或查一些资料,由于没有老师的指导,有些算法还是模棱两可。

在数据结构的课上,老师也给我们介绍了一些算法。

下面是我自己总结的算法:一.基本算法:(1)枚举.(2)贪心(3)递归和分治法(4)递推(5)构造法(6)模拟法二.图算法(1)图的深度优先遍历和广度优先遍历.(2)最短路径算法(3)最小生成树算法(4)拓扑排序(5)二分图的最大匹配(6)最大流的增广路算法(KM算法)三.数据结构(1)串(2)排序(快排、归并排(与逆序数有关)、堆排)(3)简单并查集的应用.(4)哈希表和二分查找等高效查找法(5)哈夫曼树(6)堆(7)trie树(静态建树、动态建树)四.简单搜索(1)深度优先搜索(2)广度优先搜索(3)简单搜索技巧和剪枝五.动态规划(1)背包问题.(2)型如下表的简单DP1.E[j]=opt{D+w(i,j)}2.E[i,j]=opt{D[i-1,j]+xi,D[i,j-1]+yj,D[i-1][j-1]+zij} (最长公共子序列)3.C[i,j]=w[i,j]+opt{C[i,k-1]+C[k,j]}.(最优二分检索树问题)六.数学(1)组合数学:1.加法原理和乘法原理.2.排列组合.3.递推关系.(2)数论.1.素数与整除问题2.进制位.3.同余模运算.(3)计算方法.1.二分法求解单调函数相关知识七.计算几何学.(1)几何公式.(2)叉积和点积的运用(如线段相交的判定,点到线段的距离等).(3)多边型的简单算法(求面积)和相关判定(点在多边型内,多边型是否相交)(4)凸包.对上述一些排序算法能熟练的掌握。

acm比赛技巧

acm比赛技巧

acm比赛技巧ACM比赛技巧ACM比赛是一项需要高度技术和实战经验的竞赛,以下是一些ACM比赛技巧,可以帮助你在比赛中获得更好的成绩。

1. 认真阅读题目在比赛中,认真阅读题目是至关重要的。

要仔细阅读题目,理解问题的本质,确定问题的输入和输出,以及确定问题的限制和要求。

只有完全理解问题,才能开始解决它。

2. 熟练掌握算法和数据结构ACM比赛中经常出现的问题是需要使用算法和数据结构来解决。

因此,熟练掌握各种算法和数据结构,包括二分查找、贪心算法、动态规划、图论等,是非常重要的。

3. 练习编程技巧ACM比赛中,编程技巧是非常重要的。

要熟练掌握各种编程语言和工具,包括C++、Java、Python等。

此外,要熟悉各种常用的编程技巧,例如字符串处理、数学计算、文件读写等。

4. 善于分析问题在ACM比赛中,分析问题是非常重要的。

要善于分析问题,确定问题的本质,确定问题的输入和输出,以及确定问题的限制和要求。

只有完全理解问题,才能开始解决它。

5. 团队合作ACM比赛是一个团队竞赛,团队合作是非常重要的。

要与队友紧密合作,互相支持,共同解决问题。

此外,要善于分配任务,合理安排时间,以便在比赛中取得最佳成绩。

6. 练习模拟赛在ACM比赛中,模拟赛是非常重要的。

要经常参加模拟赛,模拟比赛中的各种情况,以便更好地适应比赛。

此外,要认真分析模拟赛中的错误和不足,及时进行改进。

7. 保持冷静在ACM比赛中,保持冷静是非常重要的。

要保持冷静,不要因为一时的错误或困难而失去信心。

要保持清醒的头脑,认真分析问题,寻找解决问题的方法。

8. 多参加比赛在ACM比赛中,多参加比赛是非常重要的。

要经常参加各种比赛,包括校内比赛、省内比赛、国内比赛等。

通过参加比赛,可以不断提高自己的技术和实战经验,为更高水平的比赛做好准备。

以上是ACM比赛技巧,希望对你有所帮助。

在比赛中,要保持冷静、认真分析问题,与队友紧密合作,共同解决问题。

通过不断练习和参加比赛,可以不断提高自己的技术和实战经验,取得更好的成绩。

清华大学吴翼学长的经验【我的ACM参赛故事】

清华大学吴翼学长的经验【我的ACM参赛故事】

小学的时候参加计算机兴趣小组,从那里接触了编程。不过,要说真正被带入了程序竞赛这条不归路,那还 得归功于我的恩师,常州高级中学的曹文老师的顶级忽悠能力。
我从初一开始跟着曹老师学习信息学竞赛,曹老师最喜欢有事没事的扯他过去的学生的故事,以及竞赛圈里 的八卦。也正是那个时候,从曹老师的口中,我知道了世界上还有ACM这么个玩意。还记得某一天,曹老师又在 胡侃:“ACM比赛一共有4所大学夺得过2次世界冠军:上海交通大学,圣彼得堡ITMO,华沙大学还有斯坦福大 学。”说出来不怕笑话,这也是我第一次听到斯坦福大学这个名字。所以斯坦福大学给我的第一印象就是:两次 世界冠军的学校!说句题外话:因为恽之玮的原因,我喜欢了北大很长时间,也因为曹老师的这句胡侃,让斯坦 福成了我最向往的大学;不过造化弄人,我的本科在北大的隔壁度过,而博士,又跑到了斯坦福的隔壁。
从我接触程序竞赛到现在应该有十多年了,单说ACM竞赛,从第一次非正式参赛到现在也差不多有7年多的 样子。有太多的故事,想说的话,却一直没能有机会写下来。一方面是自己忙,一方面也是自己懒。所以很感谢 能有人“逼”我来写点什么。想到会有很多人来读我写的文字,自己也觉得很开心。其实每个人的生活都是一部 电影,只是没有那么多幸运的人有机会去诉说。这里,且说三个小故事。
很多人问我,这么多年了你怎么还在参赛呢,花费这么多精力,时间,到底是为什么呢?其实我也快说不清 楚了。很小很小的时候,那时候教数学奥赛的老师嫌我贪玩训斥我鄙视我的智商。小孩子自尊心总是特别强,想 着我换个地方证明我比那些你喜欢的人都厉害,最后差不多是做到了;到了初中,我想比那些师兄师姐们都厉害 ,要做全国一流的选手,后来差不多也做到了;到了高中发现好像在我身边的师兄,同学超不过了(提一下,有 一个高中师兄叫金斌,TCO世界冠军,ACM总决赛冠军亚军各一次,还有一个高中师兄叫吴卓杰,ACM总决赛冠 军,目前都就职于Google),我就想我可以到了大学参加ACM,在ACM赛场上超过他们;到了大学,做工程的不 断实习做项目,做科研的一篇接一篇的发论文,刷GPA的几乎每门课都是满分。我看看自己似乎没有一样能做到 最好的,于是就想,要不然就做一个科研界ACM比的最好的,而ACM界又科研做的最好的人吧;再到后来,我知 道世界上还有Percy Liang (斯坦福大学助理教授,ACM总决赛亚军), Matei Zaharia(MIT助理教授,Spark的开 发者,ACM总决赛第四)这些人,遂发现自己实在是差距太大了,实在连个理由都编不出了(也许可能是常州方 言讲的最好的?)。可能这个时候,ACM对我而言,更像是对自己的敬礼。毕竟,自己已经坚持了很久很久,从 江南,到帝都,再到美利坚加利福尼亚。就像唱一首歌,跳一支舞,写一段文字,哪怕根本没有观众,也总希望

牛人:图灵——计算机之父、人工智能之父

牛人:图灵——计算机之父、人工智能之父

⽜⼈:图灵——计算机之⽗、⼈⼯智能之⽗ 英国著名学者阿兰·图灵(A. Turing,1912年6⽉23⽇—1954年6⽉7⽇),英国数学家、逻辑学家,被称为计算机科学之⽗,⼈⼯智能之⽗。

成就: ·图灵曾协助英国军⽅破解德国的著名密码系统“谜” ·提出了“图灵机”,为现代计算机的逻辑⼯作⽅式奠定了基础 ·提出了“图灵测试”,⼀种⽤于判定机器是否具有智能的试验⽅法,⾄今,每年都有试验的⽐赛。

代表作: 《论数字计算在决断难题中的应⽤》 《机器能思考吗?》星座:巨蟹座 巨蟹座的⼈在⽉光照耀下诞⽣。

巨蟹座的⼀个长处是他(她)们有着哲学的思考⼒,有⼀种天⽣的宇宙观,他(她)们的思考往往带有⼈性化的关怀,带有⼀点⼉伤感滋味、富有内涵和情节的⾳乐会使他(她)们的想象⼒翻涌不停,他(她)们喜欢⽤画笔和纸绘画出⾃⼰那略微悲伤的情感。

巨蟹座还有谁——邓稼先、梅西、周星驰、梁朝伟……趣闻: 《科学美国⼈》这样评价图灵性情⽭盾的⼀⽣:“个⼈⽣活隐秘⼜喜欢⼤众读物和公共⼴播,⾃信满怀⼜异常谦卑。

⼀个核⼼的悖论是,他认为电脑能够跟⼈脑并驾齐驱,但是他本⼈的个性却是率性⽽为、我⾏我素、⽆法预见,⼀点也不像机器输出来的东西。

” ·图灵有花粉过敏的⽑病,⼜拒绝使⽤脱敏药物,在布雷契莱园上下班时就戴上防毒⾯具 ·为了防⽌茶杯丢失,他⽤铁链把茶杯锁定在暖⽓管⼦上 ·15岁的图灵在罗斯公学遇到了克⾥斯朵夫·默卡,他⽐图灵⼤⼀岁,梦想的学校是剑桥。

因此图灵也把⽬标定为剑桥,并提前⼀年⾼考。

·沃尔顿⽥径俱乐部后参加的3英⾥(4.8公⾥)⽐赛,图灵以15分37秒的成绩夺得第⼀,这⼀成绩当年在英国排名第20位 ·1952年,图灵写了⼀个国际象棋程序。

可是,当时没有⼀台计算机有⾜够的运算能⼒去执⾏这个程序,他就模仿计算机,每⾛⼀步要⽤半⼩时。

他与⼀位同事下了⼀盘,结果程序输了。

ACM 总结

ACM 总结

ACM培训总结在培训之前,我也一直在搞ACM 这个东西,但是从来没有能系统的搞一下,虽然之前在杭电上也做了一百来道题,但是都是挑的中文题还有简单的英文题来做的,也就是可以做一些简单的字符串处理,简单的排序,最多的是能搞定一两题贪心算法!对算法还没什么概念,就是拿到一个题目就按照自己乱七八糟的思路去做!培训开始的时第一天,讲的是枚举,好多题目都是一些以前或者小时候看过的智力题,当时当然就是猜答案了,而现在用计算机编程来实现,甚至是实现在不同情况下的实现方法,第一次觉得ACM是一个这么有趣的东西!之后的训练让我觉得ACM并不是有趣就可以形容的,有趣,有难度,做这个东西大概是需要一点天赋的,开始的培训没有涉及到什么具体的思想,题目做起来还是比较顺利,可能是因为符合我以前的风格吧,但是后来发现,ACM 真不是好惹的,有算法,有思路,但是你就是无法快速的用算法语言表达出来,有时候憋了一个多小时完成了代码,但是结果总是不符合要求,或者符合了自己的要求但是到OJ 上就是通过不了,顿时觉得ACM注定是一条艰辛的路。

再后来就是接触到一些真正的算法了,这些算法说实话基本上以前都多多少少接触过,在以前觉得是很难(现在还是不简单),没信心去搞明白,于是每次做题一遇到搜索之类比较抽象的一类算法的时候都是看一下题目就放弃了,但是现在培训,专门就来针对这些问题来训练,也就是说不管多难也都要懂,每天上午老师讲算法思想,分析代码,下午自行做相关方面的训练,一天基本上除了睡觉就是培训做题(其实感觉也挺爽的),每天差不多能做出五道题目左右,当然不是完全自己写出来的,也有好多是参考网上大牛的思想才写出来的,就是每天这样搞,对于我来说效果还不错,就这样每天的训练可以在最大程度上客服我的惰性,因为大家都在做题如果自己不做那么就会有一种落后的感觉(虽然我现在的水平还是相对较差,但是我从来都不习惯落后),还有就是在做题的时候偶尔也会和大家一起交流,认识了一些其他班的ACM相对比较牛的人,我觉得他们都挺厉害的,有时候他们的思想说出来却什是我想不到的,现在大概明白为什么ACM要三人组队了,人多了比较混乱,人少了缺少思想碰撞。

bfs acm竞赛题解

bfs acm竞赛题解

BFS(广度优先搜索)是一种常用的算法,在ACM竞赛中经常出现。

以下是一个BFS的ACM竞赛题解的例子:
题目:农夫知道一头牛的位置,想要抓住它。

农夫和牛都于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)。

最少要花多少时间才能抓住牛?
思路:
建立结构体,将牛的位置now和时间time放在一起。

建立一个数组来记录农夫走过的位置。

将结构体放入队列中,用结构体建立next和now(农夫的现在和接下来的位置)。

在农夫每一次行动的最终结果与牛所在的位置做对比,如果now.x与m相等,就说明农夫找到了牛,根据BFS广搜的特性必定是最短路径。

acm集训队的实践经验

acm集训队的实践经验

acm集训队的实践经验ACM(Association for Computing Machinery)是一个国际性的计算机科学组织,旨在推动计算机科学的发展和应用。

ACM集训队是一支由学生组成的团队,旨在参加各种ACM编程竞赛并取得优异成绩。

在实践过程中,ACM集训队积累了许多宝贵的经验,以下将介绍一些比较重要的经验。

第一,建立团队合作精神和团队文化。

ACM集训队是一个团队,每个成员都有自己的长处和特点。

因此,建立一个和谐的团队氛围非常关键。

团队成员之间需要相互尊重和信任,能够有效的沟通和合作。

在队伍中,每个人的意见和想法都应该得到尊重和重视,大家共同商议,形成团队共识,并为实现共同的目标而努力。

第二,制定合理的训练计划。

实际上,ACM集训队的竞争对手非常强大,因此只有通过充分的训练和准备,才能在比赛中取得好的成绩。

因此,ACM集训队需要制定合理的训练计划,并根据队员的实际情况和水平进行有针对性的训练。

不同的队员在不同的方向上进行训练,以便形成稳定的整体实力。

第三,提高算法和数据结构的理解和运用。

ACM竞赛的核心是解决问题的能力。

因此,队员们需要深入理解算法和数据结构,并能够熟练地应用它们来解决各种问题。

这就需要队员们进行大量的专项训练和刷题练习,掌握常见的算法和数据结构,并能够在实际比赛中运用自如。

此外,了解一些经典的算法和数据结构的原理和思想也是非常有帮助的。

第四,掌握编程语言和常用工具的使用。

ACM编程竞赛经常使用C++、Java等编程语言。

因此,队员们需要熟练掌握至少一种编程语言,并能够在实践中熟练运用。

此外,ACM编程竞赛中常用到一些辅助工具,如编译器、调试器、代码库等,队员们也需要熟悉并掌握这些工具的使用方法,以提高编程效率和代码质量。

第五,注重团队内部的交流和学习。

ACM竞赛的一个重要特点就是团队合作。

因此,队员们应该注重团队内部的交流和学习,相互之间进行问题的讨论和解答,共同进步。

ACM在线训练方法09

ACM在线训练方法09
poj3349,poj3274,POJ2151,poj1840,poj200 2,poj2503 poj3253 poj1442,poj2051 poj2513 poj2528,poj2828,poj2777,poj2886,poj275 0 poj2482,poj2352 poj1195,poj3321 poj3264,poj3368 poj1703,2492 poj1961,poj2406 poj2778
ACM 在线训练方法(请仔细阅读)
一、ACM 训练目标
1、寒假前,有没有小组成员 AC 题目 20+。 2、开学时,有没有小组成员 AC 题目 50+,甚至出现 100+。
二、练习步骤
1、注册注意事项 pku Online Judge 网址:/JudgeOnline/ 在 中的 Online Judge 系统注册,并在学校名中注明“cfz08”。注册名今 后尽量不要改变。一方面便于管理,另一方面由于每个用户的历史记录非常完整,今后可 以作为一个非正式的自我证明材料。 2、做哪些题? 在线题库中题目数量众多,且题目的难易程度、题目类型都不按顺序来。例如,有特 别简单的,也有超级难的(提交次数与 AC 次数的比值可以一定程度上反映难度)。 (1)先搞定把 1000 号题目(也就是第一个题目),此题用于确定你掌握了该系统的使用方 法以及对 I/O 的要求。 (2)POJ 题山题海,比赛前能踏实解决 200 个问题的已属牛人。所以,请按照本文后“附 1”的题目分类表,根据你的学习计划做题。 (3)绝不要轻易 copy 网络现成的代码后,就算自己过了此题——毫无意义。切记! 3、看一道题->独立思考、尝试解决
poj1768,poj1184,poj1872,poj1324,poj204 6,poj1482

ACM成功者的经验

ACM成功者的经验

北京、上海
一年以后,半数老队员退役,三位新队员加入(张俊彬 csd 03,项光特 csd 05,吴笃敏 软件 05)同时由于上一年的我们在奖牌上的突破,ACM/ICPC在我们学校的知名度提高了不少,除了我们以外还有一些爱好者在做题训练,现在poj搜一下xmu已经可以看到很多身影,不象当初我们刚开始的时候那么形单影只。希望随着学校对ACM竞赛越来越重视,会有越来越多的同学参与道这项竞赛当中来,他们都是珍贵的后备力量,有他们才有我们学校ACM竞赛的未来。其实我们参赛获奖除了获得荣誉,获得肯定以外,更高兴的通过我们的努力让学校注意到我们,吸引更多的同学进入这项赛事,喜欢这项游戏。客观的说,我们学校在ACM上的投入相当的少,不提上海交大夸张的近百万的经费,就是与其他的一些学校相比也颇有不如,不管是在赛前培训,训练机房,还是比赛经费方面都还有很大不足。不过,现在已经有很大改善了,这也是我们的实力得到学校肯定的结果之一。去年另一个令人欣喜的是,我们还组建了一支女队,她们是(吕武玲 csd 02,林倩瑜 csd 05,黄文秀 csd 05),虽然实力稍差,但确实是开创了历史。而这一次我的队友是张弛和项光特(csd 05级)。 客观的说,这一支队伍是我们学校有史以来实力最强的一队,擅长编码,实战能力超强的我加上理论扎实,数学功力深厚的张弛,还有一个在noi久经考验的项光特,我们自信已经有挑战国内任何一支强队的能力。在暑假训练的时候,我们就信心十足,可以说今年我们就是冲着金牌去的。而在poj的热身赛中两次夺得第一,更上让我信心暴增。北京之行就是在这样的背景之下开始的。在去之前,对清华充满了憧憬,和大多数人一样我也曾经梦想过成绩清华学子。可事实总是残酷的,我再次体会到厦门大学的美丽名声在外确实不是没有来由的。再加上北京阴沉的天气,清华竞赛的组织不力,心目中清华的形象几乎破灭殆尽。在后面的现场赛中,我们先是由光特过了一道简单题,然后我过了一道搜索,最后他又过了一道博弈。虽然我们只过三道题目,但是由于我们做题的时间都很短,罚时很少,最终只排在过了四道题目的中国科学技术大学之下,获得第二名,拿到我们的第一块金牌,并且获得了参加世界总决赛的资格。能获得这样的成绩有很多的原因,第一是清华举办的比赛,他们自己不能派队伍参赛,导致名震天下的楼教主没有出手,第二是传统强校上海交通大学没有派队参赛,这无形中减少了潜在的对手,当然最重要的是我们已经有了足够挑战金牌的实力。北京之战是我们的成名之战,ACM社区就象是一个江湖,在这里你最大的依仗是你的实力。所谓一朝成名天下知,等我们到上海大学参赛的时候,就不再是默默无闻,一不小心就被当成是厦门大学的牛人,让我们很是虚荣了一把。如果说在北京夺金靠的是项光特的神勇表现,上海的金牌就是靠我的人品大爆发,一开始我就过了一道简单题,然后和张弛讨论以后过了一道树状dp,接着又过了一道搜索。稍后,项光特过了一道数学题,最后经过不停的优化我终于又过了一道搜索。最终我们排在了第七,排在我们前的是两支清华的队伍,两支上交的队伍,两支复旦的队伍,由于上交和复旦已经在其他赛区获得第一不计入排名,而同一个学校只算一个排名,我们最终还是排在了第二。只能拿到第二是有点遗憾,但是已经是超出预料的成绩,夺冠的任务就交给将来的师弟师妹了。

一位ACMer过来人的心得

一位ACMer过来人的心得

一位ACMer过来人的心得[转摘]刻苦的训练我打算最后稍微提一下。

主要说后者:什么是有效地训练?我想说下我的理解。

很多ACMer入门的时候,都被告知:要多做题,做个500多道就变牛了。

其实,这既不是充分条件、也不会是必要条件。

我觉得一般情况下,对于我们普通学校的大学生,各方面能力的差距不会太大,在这种情况下,训练和学习的方法尤为重要。

其实,500题仅仅是一个标志,而且仅仅表示你做ACM-ICPC有一定的时间,我们训练的目的是什么?我觉得有四点1、提高编程能力2、学习算法,(读书,读论文,包括做一些题目验证)3、准备好面临将到来的挑战(熟悉题型,调整心态)4、启发思维。

这里四个目的,从训练的角度上,重要性逐次递减;为什么呢?因为前面的因素是后面的基础。

而是后面的目的,想达成越为不易。

我觉得前3者能保证你ac掉你能做的题,即使难题始终不会做,也可以ac掉中等偏难的题目。

而需要一定思维难度的题,要以前三者为基础而且属于训练的后期,中期只能作为偶尔调节。

当然,我思维也烂得要死,对这点没什么发言权,大家可以鄙视我。

我这里想主要说下第2点。

对于算法,我发现,很多我们这样的弱校ACMer选手没有侧重好算法的学习。

下面要讲的几点,可能都很老套,但我想以035对比我自己的例子给大家做说明。

<1>算法学习是ACM比赛所要推广或者要提倡的一个方面记得曾经路过某人的blog,上面说他作比赛的时候遇到了一个dijkstra,他没做出来,然后评论到(大意):我才不会花时间去搞明白“这种”算法。

“这种”也许有可能是指:没什么实用性,对吧,这样我就不想评论了(又是有关科学和工程的讨论)。

但起码有一点需要明确的:ACM-ICPC比赛时关于计算机科学的比赛,计算机科学是算法的科学,计算机算法中dijkstra有着重要的实际和启发意义,所以比赛一定要考。

你参加这个比赛,要拿奖,就必须学习这种算法。

你也许觉得你智商很高,但ACM-ICPC 比赛本身不是智力比赛,比赛就是要让你去学习这些东西,所以,如果你不想学的话,我觉得也没有必要参加。

ACM经验

ACM经验

相信每一位玩ACM程序设计竞赛的同学来说,都有一个从入门到精通的过程,而且分享他们经验的时候,见到最多的就是一种合作和拼搏精神,乐在其中的那种激情。

Wilbert即将毕业,作为一个菜鸟级的入门玩家,一直很想知道如何能在程序设计竞赛中成为一个高手。

即将无缘类似竞赛的我,终于整理出了一些程序设计竞赛ACM训练之道,愿与大家分享。

首先是编程的能力,一般要做到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、Concrete Mathematics --- A Foundation For Computer ScienceRonald L. Graham ,Donald E. Knuth ,Oren Patashnik这本书《具体数学》是Stanford计算机系的教材(1970 年开始给研究生授课),书的内容是Knuth的巨著TAOCP第一章的扩展,涉及了计算机科学领域内几乎所有可能遇到的数学知识。

ACM感言

ACM感言

北大计算机研究生的ACM感言ACM感言shangmi n时间过得真快,转眼间现在马上就到了毕业的时候了。

大学四年的生活就这样在漫不经心中度过,在这四年里我留下了许多值得回忆的东西。

参加ACM的经历和体会和其他美好的经历一样,永远值得我回忆和珍惜。

一个偶然,我报考了兰州大学计算机科学与技术系;又一个偶然,我开始了解ACM,开始慢慢喜欢上ACM。

我相信这都不是偶然,或许是我们所说的缘分。

2003年我从一个小县城来到兰州大学,那时我计算机几乎没有任何了解,也从来没有接触过计算机。

现在我还清楚的记得大一时的上机课,我在internet explore的地址栏里面练习了三个小时的打字,为知道了如何实现大小写字母的转换而欣喜。

回想起那时的自己真的感到很幼稚,但那就是曾经真实的自己。

直到大二下学期我还不知道计算机方面竟然还有什么程序设计大赛,11月份我在校园里看到了第29届ACM/ICPC上海赛区的邀请信,遗憾的是学校并没有打算参赛。

但是我看到了几个ACM的网站,回到宿舍里我第一次看到了一些ACM比赛的题目,当时只有一个感觉,就是难。

不是那种要搬走一座大山的难,虽然很艰难,但是只要一点一点的搬,或许总有成功的一天。

而是根本就不知道要干什么的难,难的无法下手,难得你不知道题目再说什么。

05年5月份,学校要开始举办校内的ACM/ICPC的选拔赛,听到这个消息我沉寂了几个月的心又开始动荡不安了起来,开始兴奋了起来。

为了能进入学校的集训队,我开始在浙大的oj上进行一些训练。

那时候只要有空闲时间我就在上面练习,也丝毫没有顾及马上就要到来的期末考试。

只是那时候没有人指导,自己制作一些很简单的题目,但是那些题目对我来说还是很费力的。

一天也只能做3,4道,进展很缓慢。

庆幸的是校内的选拔赛我终于顺利通过,成功进入了学校的集训队,这对我自己也是一个不小的鼓励。

05年的暑假是我永远都不会忘记的一段时间。

每周四天的课,除了上课的时间我几乎都是面对着电脑在做题。

我的拿手好戏编程比赛

我的拿手好戏编程比赛

我的拿手好戏编程比赛编程比赛是我拿手的一项才能,它是我在技术领域中最为熟练的表现之一。

我对编程比赛的喜爱源于我对计算机科学和算法的深入研究,以及对解决问题的热情。

在这篇文章中,我将分享我的编程比赛经历以及我在其中遇到的挑战和得到的收获。

首先,我想分享一下我参加过的几个编程比赛。

其中最有名的比赛是ACM国际大学生程序设计竞赛。

这是一个世界性的比赛,每年都吸引着来自世界各地的顶尖大学生参与。

我还参加过一些本地的编程比赛,包括学院内部的比赛以及一些由软件公司组织的比赛。

每次编程比赛都是对我的技术能力的一次全面考验。

在比赛中,我需要根据赛题的要求设计出高效的算法,并在有限的时间内实现和调试代码。

此外,我还需要熟练运用各种数据结构和算法,以便解决不同类型的问题。

参加编程比赛的过程中,我遇到了许多挑战。

其中最大的挑战之一是时间限制。

在比赛中,每个题目都有严格的时间要求,通常只有几个小时来完成。

这意味着我必须快速思考、高效编程,并在最短的时间内找到解决方案。

这需要我具备良好的思维能力和较快的编码速度。

另一个挑战是题目的难度和复杂性。

有些题目涉及到复杂的数学问题或者涉及到特定领域的知识,这要求我在短时间内学习和理解相关概念。

为了应对这一挑战,我经常阅读相关文献和参考资料,以加深对特定主题的理解。

尽管面临着挑战,我依然从编程比赛中获得了巨大的收获。

首先,比赛锻炼了我的问题解决能力。

在比赛中,我需要思考和分析题目,找到最优的解决方法。

这培养了我独立思考和创造性解决问题的能力。

其次,编程比赛提升了我的编程技巧和算法知识。

通过参与不同类型的比赛,我学习了众多常用的数据结构和算法,并学会了如何将它们应用到实际问题中。

这些知识对于我的学术和职业发展都具有重要意义。

此外,编程比赛还给我带来了自信心。

通过和其他优秀的参赛者竞争,我逐渐认识到自己的能力,并在与他们的交流中学到了很多。

这让我更加相信自己能够在编程领域中取得成功。

总结起来,编程比赛是我拿手的好戏,它不仅锻炼了我的技术能力,还提升了我的问题解决能力和自信心。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

来自牛人的ACM经验竞赛2010-07-16 09:51:43 阅读0 评论0 字号:大中小转于:/luxuejuncarl/hacker名单/isbxposted @ 2007-03-19 21:30 路雪军阅读(120) | 评论(0) | 编辑收藏Linux常用命令锦集/images/tech/linux/zhuanti/mingling/index.htmposted @ 2007-03-19 20:25 路雪军阅读(112) | 评论(0) | 编辑收藏2007年3月5日随想记录下wonderful的sentences,背下来并加以应用is a good habit..posted @ 2007-03-05 15:24 路雪军阅读(88) | 评论(0) | 编辑收藏2007年3月3日acm比赛经验(转)在天大,偶参加的比赛可以算是最多的了,说说比赛经验。

可能现在说早了点,需要大家在正式比赛之前再看一遍。

推荐此篇文章打印,与模板放在一起。

1. 比赛中评测会有些慢,偶尔还会碰到隔10分钟以上才返回结果的情况,这段时间不能等结果,必须开工其他题,如果W A,两道题同时做。

交完每道题都要先打印。

2. 比赛时发的饭不是让你当时就吃的,那是给你赛后吃的。

基本上比赛中前几名的队都没人吃,除非领先很多。

3. 很多选手,尤其是第一次参加比赛的,到一个新环境,全当旅游了,参观的参观,找同学的找同学,玩玩乐乐就把正事抛到脑后了,结果比赛自然没什么好成绩,这样的例子太多了。

所以到参赛地后要时刻不忘自己是来比赛的,好好休息、备战。

4. 参赛前一天要睡10个小时以上,非常有助于保持比赛中的精力,很多时候比赛到3个多小时队员就没劲了就是这个原因。

前一天晚饭与当天早饭要吃好,理由同上,要知道下顿饭得下午3点赛后才能吃。

5. 到新环境,时刻注意远离疾病,感冒肠炎病不大,却是成绩的天敌。

6. 英语不好,看不懂的,要勤查词典,懒一次就少一道题,远离奖牌。

7. 可以紧张,杜绝慌张,慌张是出题的敌人,任何时候,如果发现自己或者队友出现慌张的情况,提醒深呼吸。

8. 照着纸敲代码和sample数据时不要敲错,特别注意文字信息。

9. 第一道简单题交给队中最稳的人做,万一遇到麻烦也不要慌,如果有很多队都出了就更不必着急了,它必定是简单题,必定是可以很快做出来的,晚几分钟也比罚掉20分好。

另外注意不要PE。

10. 最后一小时是出题高峰,谁松懈,谁落后。

最后一小时出一道是正常,出两道更好。

以上各条均有出处,每条都包含着以往教训,每条都可能浪费掉你一年的努力,不可小视。

以下各条有些来自于其他学校,有些是总结:11. 无论是否有人通过,所有题必须全读过,最好每道题都有两人以上读过,尽量杜绝讲题现象。

要完全弄清题意,正确的判断出题目的难易,不要想当然。

12. 虽然讨论有助于出题,但是以往每赛区第一名基本都是各自为战,但是互相了解,觉得一道题适合其他人做就转手。

13. 保持头脑灵活,在正常方法不行时想想歪门邪道,比如换种不常见的特殊的数据结构,加预处理,限时搜索等。

效率是第一位的,如果觉得DP麻烦就用记忆化搜索,总之考虑清楚后就要在最短时间出题。

14. 竞赛中更需要比平时稳定,程序出来后要检查重点地方,尽量1Y。

对于W A的题,不要改一处就交,很可能还有错的地方,要稳,要懂得在压力下也要仔细。

对WA的题测试时要完整,必须每个点都测到,但不一定特别复杂。

要考虑到测试的各种边界情况,比如矩阵可能为1*1或1*n或m*1。

15. 除非做出的人很多,否则最后考虑复杂几何题,精度造成的问题太多了。

对double型操作要小心判断大小、绝对值等情况。

一般情况下不要用float型。

16. 块复制要小心,检查相应的部分是否已经正确修改。

17. 纸上写程序要尽量完整,每道题上机时间(包括输入、测试和调试)不要超过一小时。

程序出错如果一时无法排除就应该打印出来阅读而把机器让出来。

18. 提交时注意题号,不要交错题。

由于PC^2的界面,这种情况时有发生。

19. 尽可能想到题目可以用到的数学的东西。

20. 初始化必不可少。

21. 数组行列下标不要弄反,位运算或字符串哪头是0和n不要搞反。

22. 提交时记得把所有的调试信息都关掉。

23. 实在迫不得已才可换人做题。

24. 有想法后,写程序之前想好时空效率。

比赛中一般不会出现时限30秒以上的题(国外赛区除外),10秒及以上的一般不会超过3道。

25. 竞赛机会每年只有一次,训练了很长时间,如果比赛中出现疏失,那么今后一年都会后悔。

对于不准备明年参赛的同学,更是要珍惜最后一次参赛机会。

附以前所写《组队赛说明》1 要有做题比较多的队员,对于各种题型都有所涉及,做题稳,一般对前两道简单题能够保证快速,并且99%以上一次AC。

2 要有人专门应付数学与几何题,但复杂的几何题要放在最后做,对一些常用的函数要有模版准备。

如精度控制,叉积,凸包等。

3 要有人能够对付麻烦的题,并保证一定的通过率,大多数的比赛都至少有一道这样的题,如POJ 1913,TOJ 1092。

4 要有人对DP非常之熟,单次、双次、相对等情况都不在话下。

对经典DP手到擒来。

5 要有人对稀奇古怪的算法都做过程序,涉猎广,对于数论、图论中的一些特殊结论都知道。

如TOJ 1584,ZOJ 1015,UV A 10733。

6 要有人对复杂的通用算法做过程序,如网络流中的最小费用最大流等等一系列的流,求割点/割边,启发式搜索/搏弈等。

7 模版要自己写,并且另两个人都认真读过,用以往题目进行多次的测试。

模版要全,但要控制篇幅,因为很多赛区已开始限制页数。

8 要有人对Linux/vi/gcc 系统熟悉,对PC^2熟悉,一定注意正式比赛时不要出现提交错题的情况。

另外也要试用Dev-C++等Windows下的免费软件。

总之熟悉比赛环境。

9 每次练习赛都要当作正式比赛来做,要确保所有的题都看过,赛后要把没做出来的题尽量补上。

10 可能的话多看看以往比赛的总结、照片和录象,缩短与正式竞赛的距离,避免正式竞赛时紧张得做不出题等情况。

最好的情况就是对于各种题目三个队员都能做,但是又各有侧重。

要保证出来一道题能够有人会做、敢做,至少也要知道做法。

posted @ 2007-03-03 00:13 路雪军阅读(406) | 评论(0) | 编辑收藏ACM/ICPC竞赛规则和赛题特点ACM/ICPC竞赛规则和赛题特点ACM比赛由三人一组在一台电脑上合作进行,比赛时间为5个小时。

在这5个小时中,三名选手将有选择的完成8-10道程序求解问题,解答以程序的方式通过网络提交给裁判。

裁判会为每个问题设计好极为严格的测试数据以检测程序的正确性,一个正确的程序必须通过所有的测试数据,如果在一个测试数据上出错这个程序就被认为是错误的。

最后按解决问题个数的多少对队伍进行排名,并列者再按错误提交的次数排名。

ACM赛题有以下的特点:1.难度极大。

8-10个问题中通常最强的队伍也只能完成5-6题。

在5个小时之内构造出这些问题的算法就很难,即便算法是正确的,如果在程序实现时出有一点误差都会被裁判极为严密的测试数据查出而把程序判定为错误的。

另外题目为全英文,选手必须要在很短的时间内把握住问题的每一个细节,一处理解的偏差就会导致一个程序的错误。

2.赛题具有创造性且考察的范围很广。

ACM的赛题涉及数据结构,算法设计,图论,规划,人工智能,计算几何,计算机图形学,数论,离散数学,组合数学,操作系统,编译原理等各个方面,且大多数试题都没有成型的算法,要求选手在场上发挥自己的创造力,为每个问题构造出数学模型并设计出高效简洁的算法。

3.赛题与实际应用的联系很紧密。

很多试题也许被出题者描述成一个有趣的故事,但它很可能就是最近一个计算机科学技术领域的成果,也有的问题就原样以操作系统或是编译原理中模型的形式给出。

这使得一次竞赛不仅有趣和充满挑战性也具有更加深远的意义。

posted @ 2007-03-03 00:13 路雪军阅读(361) | 评论(0) | 编辑收藏2007年3月2日ASCII码对照表ASCII码对照表目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII 码(American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。

适用于所有拉丁文字字母,ASCII 码有7位码和8位码两种形式。

因为1位二进制数可以表示(21=)2种状态:0、1;而2位二进制数可以表示(22)=4种状态:00、01、10、11;依次类推,7位二进制数可以表示(27=)128种状态,每种状态都唯一地编为一个7位的二进制码,对应一个字符(或控制码),这些码可以排列成一个十进制序号0~127。

所以,7位ASCII码是用七位二进制数进行编码的,可以表示128个字符。

第0~32号及第127号(共34个)是控制字符或通讯专用字符,如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;第33~126号(共94个)是字符,其中第48~57号为0~9十个阿拉伯数字;65~90号为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。

注意:在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位(b7)用作奇偶校验位。

所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。

奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。

附:键盘常用ASCII码ESC键VK_ESCAPE (27)回车键:VK_RETURN (13)TAB键:VK_TAB (9)Caps Lock键:VK_CAPITAL (20) Shift键:VK_SHIFT ($10)Ctrl键:VK_CONTROL (17)Alt键:VK_MENU (18)空格键:VK_SPACE ($20/32)退格键:VK_BACK (8)左徽标键:VK_LWIN (91)右徽标键:VK_LWIN (92)鼠标右键快捷键:VK_APPS (93) Insert键:VK_INSERT (45) Home键:VK_HOME (36)Page Up:VK_PRIOR (33) PageDown:VK_NEXT (34)End键:VK_END (35)Delete键:VK_DELETE (46)方向键(←):VK_LEFT (37)方向键(↑):VK_UP (38)方向键(→):VK_RIGHT (39)方向键(↓):VK_DOWN (40)F1键:VK_F1 (112)F2键:VK_F2 (113)F3键:VK_F3 (114)F4键:VK_F4 (115)F5键:VK_F5 (116)F6键:VK_F6 (117)F7键:VK_F7 (118)F8键:VK_F8 (119)F9键:VK_F9 (120)F10键:VK_F10 (121)F11键:VK_F11 (122)F12键:VK_F12 (123)Num Lock键:VK_NUMLOCK (144)小键盘0:VK_NUMPAD0 (96)小键盘1:VK_NUMPAD0 (97)小键盘2:VK_NUMPAD0 (98)小键盘3:VK_NUMPAD0 (99)小键盘4:VK_NUMPAD0 (100)小键盘5:VK_NUMPAD0 (101)小键盘6:VK_NUMPAD0 (102)小键盘7:VK_NUMPAD0 (103)小键盘8:VK_NUMPAD0 (104)小键盘9:VK_NUMPAD0 (105)小键盘.:VK_DECIMAL (110)小键盘*:VK_MULTIPLY (106)小键盘+:VK_MULTIPLY (107)小键盘-:VK_SUBTRACT (109)小键盘/:VK_DIVIDE (111)Pause Break键:VK_PAUSE (19)Scroll Lock键:VK_SCROLL (145)posted @ 2007-03-02 22:24 路雪军阅读(431) | 评论(0) | 编辑收藏介绍一些经典的网站和书籍因为要经典,不敢写得太多,欢迎大家继续补充。

相关文档
最新文档