当前位置:文档之家› 来自牛人的ACM经验

来自牛人的ACM经验

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

相关主题