来自牛人的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比赛技巧,希望对你有所帮助。

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

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

  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) | 编辑收藏介绍一些经典的网站和书籍因为要经典,不敢写得太多,欢迎大家继续补充。

相关文档
最新文档