Advertisement

2018中北大学ACM新生赛指南

阅读量:

比赛时间: 2018-12-02

**比赛赛制:**ACM赛制(非3人队形式,个人赛)

比赛时长: 4小时 (12:00——16:00)

(中午时分不会让人前往食堂是吧?感到饥饿又撑得住不了的小可爱们可以选择带一块巧克力之类的零食啦!当然如果你提前离开赛场也是可以理解的情况哦!但是这被视为比赛结束的一个合理理由呢!友情提醒吃东西会导致血糖升高进而影响你的思维能力哦!)

题目数量: 10题左右(一般为10题)

题目类型: 主要以基础数论、思维题为主

系统环境: WIN7 (正规比赛一般是ubuntu)

目前校OJ支持提交的编程语言: C、C++、Java

关于ACM赛制介绍

题目的提交状态:

1、Accepted. ——通过!(AC)

2、Wrong Answer.——答案错。(WA)

3、Runtime Error.——程序运行出错,意外终止等。(RE)

4、Time Limit Exceeded. ——超时。程序没在规定时间内出答案。(TLE)

5、Presentation Error. ——格式错。程序没按规定的格式输出答案。(PE)

6、Memory Limit Exceeded. ——超内存。程序没在规定空间内出答案。(MLE)

7、Compile Error. ——编译错。程序编译不过。(CE)

!注意:每次提交错误是有惩罚的,每交错一题罚时20分钟

竞赛结束后,参赛各队以解出问题的多少进行排名,若解出问题数相同,按照总用时的长短排名。总用时为每个解决了的问题所用时间之和。一个解决了的问题所用的时间是竞赛开始到提交被接受的时间加上该问题的罚时(每次提交通不过,罚时20分钟)。没有解决的问题不记时。例如:A、B两队都正确完成两道题目,其中A队提交这两题的时间分别是比赛开始后1:00和2:45,B队为1:20和2:00,但B队有一题提交了2次。这样A队的总用时为1:00+2:45=3:45而B队为1:20+2:00+0:20=3:40,所以B队以总用时少而获胜。

关于几种错误的解决方案

有许多人询问他们已经通过了所有提供的样例却为何仍然会出现WA现象;事实上,
他们所看到的测试用例仅占全部测试用例的一部分;
在编程竞赛中,
这是一个较为棘手的问题,
尤其是在个人比赛中,
因为参赛者往往很难发现自己在解题过程中产生的思维偏差,
并且无法及时纠正这些错误;
一旦发现程序提交后出现 WA,
首先应重新审阅题目描述,
确认自己是否正确理解了题意或遗漏了某些情况;
其次要仔细审查自己的代码逻辑,
检查是否存在语法错误或其他潜在问题;
最后如果经过反复调试仍无法解决问题,
不妨尝试编写特定输入来验证程序运行结果与预期输出的一致性

Runtime Error:主要原因是由于你所定义的数组大小设置过小而导致越界错误;此外还可能因不当使用指针而引发问题(因此在比赛中建议尽量减少对全局变量的操作)

Time Limit Exceeded(简称TLE)的出现通常由两个主要原因引起。在新生赛中往往不重视算法本身的优化,在这种情况下可能导致无限循环的情况通常是因为缺乏明确的循环终止条件;也可能由于未提供正确的多组输入结束标志而导致程序无法正常退出。正式比赛场景中,则常见于错误选择算法或未能有效优化时间复杂度的情况发生。这些情况都是后续需要重点学习的内容,请各位参赛者予以重视。

Presentation Error:一出现pe意味着这道题已经完成了。然而不幸的是, 你的输出格式未能完全达到要求. 因此, 你需要认真检查并遵循所提出的要求, 最后才能对代码进行修改.

Memory Limit Exceeded:一般是你数组开的太大了

编译错误提示:这种问题通常会出现在代码提交后。建议您每次提交代码前先在本地进行调试。提交代码后通常不会遇到这种情况。需要注意的是,在编写代码时要避免您的变量名称与某些库函数名称重复(如max、min、swap等),以免造成混淆或功能冲突。

新生赛的赛前准备

允许在比赛中查阅书类文献(包括书籍和自己打印的纸质资料),切记不得在比赛中使用电子设备或其他网络访问方式。

2.觉得机房的键盘不舒服可以携带自己的键盘

针对编程环境设置,机房为编程爱好者配置了dev c++和codeblocks两个开发工具包,并不使用vs。建议各位同学自带一个USB存储设备,在设备中放入所需的开发工具包。赛前如有需求可将工具包拷贝至电脑进行使用。

4._关于赛前环境调试:这点在课堂上老师应该已经讲解过。建议先检查一下你的编程环境是否能输出‘Hello World’。对于Java选手来说,在赛前应确保检查虚拟机的可用性。切勿等到比赛开始才发现编程环境存在问题。

在开赛前进行热身赛,在热身赛中获得的成绩不会影响正式的比赛结果。是否参与则取决于个人意愿;而在等待期间与邻座 briefly交流以缓解紧张气氛(原意如此),但须注意比赛中禁止与其他任何人交谈。

关于“选题”

确定解决哪一道题目是关键。因为无论你选择了哪一道题目来解决,在这种情况下只有当这个题目是你之前练习过或者相对简单时,则该问题必然会导致你需要投入大量时间和精力去编写相应的代码并进行调试。因此,在这里我们分享一些选题技巧与策略。

首先,请清楚地认识到:题目的难度并非严格按照题号顺序递增的趋势;即意味着第一道题目未必是最简单的题目,并非所有情况下最后一道题目都是最困难的。

对于每个问题而言,提交次数与通过人数的数据会被展示出来。这些数据可以帮助我们识别哪些题目相对容易解答以及哪些问题则相对具有挑战性。

  1. 当比赛刚启动时, 你可以尝试选择一道 yourself热爱的题目来开始. 这里的选择需根据个人的习惯决定. 如果能够顺利解答这道题效果最佳, 遇到困难时及时转向其他问题处理. 如果持续找不到突破口, 可参考其他人的提交情况以及这道题的整体通过率数据来决定下一步行动.

  2. 不建议一开始就将注意力完全集中在一道问题上。例如有些人遇到一道题目时发现自己错了几次仍无法解决后会感到愤怒并且忽视其他的问题进而继续专注于这道难题这种做法显然不明智因为有可能这是一道‘陷阱题’(简称坑题)其关键难点可能短时间内难以突破此时建议暂时转移注意力到其他问题上以帮助理清思路

希望我们都能明白的是:不以AK为目标的心态参与这些重要的竞赛(如NOI, NOIP, 以及ACM等)。这些竞赛中的题目可能会设置超出当前能力范围的问题以防止 AK 的发生。因此,请大家保持良好的心态并尽力展现自己的水平即可。

关于比赛时间

5小时的比赛时间具有什么意义?相信这是对大多数同学而言都是一次全新的挑战。相较于其他活动或任务而言,在时间上是充足的。与以往参加过的高数考试不同的是,在这里涉及到一些你们暂时无法接触到的内容或问题。因此虽然5小时的时间看似很长但对于大家来说却是足够的。但这并不意味着忽视了时间的价值因为在比赛中可能会有一些选手选择提前退出比赛。我并不赞成这种做法因为我认为坚持到最后一刻是对这场比赛的最大尊重同时也是对自己努力的一种肯定。我记得在我所在的团队中有一位经验丰富的学长曾对我说过类似的话当时我们在牛客网打比赛的时候他说他已经无法解答后续的问题并且打算提前退出但我并没有完全同意他的想法最终他还是选择坚持了下来并最终获得了银牌后顺利退役现在回想起来这段经历对我来说是一种宝贵的经验教训希望每一位同学都能够秉持这种永不言弃的精神去面对未来的挑战

“气球”

在这个ACM竞赛中,气球是一个非常庄严的象征物。每一次你解出一道题目,在你的课桌上都会佩戴一枚气球。这次新生赛也是一样,在参赛选手桌前挂满气球是家常便饭。通过选手课桌上气球的数量,你便能大致看出他们已经解答了多少道题目。

榜单

查看排名能显示每个人完成题目数量及排行情况。
短期表现不应被视为最终的结果。
短期表现不应被视为失败的结果。
只要坚持不懈,在比赛末尾仍有机会取得全对的成绩。

关于一些比赛注意和技巧

***** 提前把自己的模板、资料备齐

1.看清是多组输入、单组输入、还是输入t组

2.字符串输入时gets要慎用,什么时候用getchar(),什么时候不用

3.明确数据范围(int_max = 2147483647)见到以2开头的10位数用long 或 long long

4.关于精度问题double

结束语

在凌晨一点十九分时完成了这篇博客。作为一名普通的普通人——或许有时也被称为"菜鸡"——内心深处涌动着一句这样的话语:「未竟之愿」。尽管如此,在这个时候写下这些话已经是一种自我安慰的方式吧!希望能借助大家的力量共同完成过去未曾实现的目标与未竟事业。加油大数据ACM!加油中北ACM!

最后放几张大佬照片膜拜一下orz!

全部评论 (0)

还没有任何评论哟~