1、竞赛语言
C、C++、Java、Python四种语言。
2、大赛赛制及说明
竞赛采用ACM赛制
(1)在规定时间内进行代码提交,每道题目提交后都有反馈,可以看到“通过”、“运行错误”、“答案错误”等结果,但无法查看错误的测试样例;
(2)试题需通过所有测试点方为通过,每道题不限制提交次数。若未通过,可修改后再次提交,通过后计分,但将罚时20分钟;
(3)比赛过程中可以看到实时排名,通过题数相同的情况下按照答题时间+罚时来排名(注:最终排名公布成绩为准)。
3、竞赛形式
比赛为线上竞赛,双机位监考,使用一台电脑+一部手机,比赛地点任选(宿舍、家里、图书馆、教室均可),在规定时间内完成答题并将代码提交至比赛系统。参赛选手通过登录比赛平台参赛。
4、竞赛平台及相关说明
(1)编程语言和界面
大赛编程语言可使用 Python 或者 Java 或者C语言或者C++完成脚本编写,选手可根据自身情况自行选择擅长的编程语言完成比赛。
(2)一般考察方向
算法考查知识点涵盖基础算法(排序、搜索)、数据结构相关算法(数组、链表、栈、队列、树、图操作)、数学相关算法(数论、概率统计)、高级算法(动态规划、贪心、分治)以及算法优化(复杂度分析)与实际应用(结合业务场景设计算法)。
5、计分及排名规则
ACM赛制的计分排名规则:
(1)通过题目数量:这是排名的首要依据,在比赛规定时间内,参赛选手通过(代码成功通过所有测试用例)的题目数量越多,排名越靠前。
(2)总用时:当多名选手通过的题目数量相同时,则依据总用时来决定排名先后。总用时的计算方式为:每道通过题目的解决时间加上该题通过前每次提交错误的罚时(一般每次罚时20分钟),所有通过题目的上述时间总和即为总用时,总用时越少,排名越靠前。
例如,A队和B队都通过了3道题,A队解决这3道题分别提交了1次、2次、3次(每次提交错误都罚时20分钟),解决时间分别为30分钟、40分钟、50分钟;B队解决这3道题分别提交了1次、1次、4次,解决时间分别为25分钟、45分钟、55分钟。则A队总用时为30+(1-1)×20+40+(2-1)×20+50+(3-1)×20=180分钟;B队总用时为25+(1-1)×20+45+(1-1)×20+55+(4-1)×20=185分钟,所以A队排名在B队之前。