聚热点 juredian

针对信奥赛制,如何高效刷题

许多信奥选手,日常除了学算法知识,还会选择网上刷题。 但是各刷题网站的赛制不同,未必匹配信息学竞赛的CSP-J/S、NOIP、赛制。 所以,如何刷题才能有效果呢? 我们今天来聊聊

赛制介绍

编程比赛中最常见的四种赛制:OI赛制、IOI赛制、ACM赛制、CF赛制。

OI赛制

一般的OI 赛制是单人在 5 个小时的时间内尝试解决 3 道题。每个题目可以不全部解决,会有多个数据点,题目的分数一般是数据点得分之和。

每个数据点会有部分分,就是数据点内部也不需要完全正确才能得到分数。评分方式是在比赛结束后统一评测,只有一次提交机会。

OI赛制的比赛:NOI、NOIP、CCF CSP、省选、考研机试、蓝桥杯、牛客OI赛、全国高校计算机能力挑战赛。

IOI赛制

每道题提交之后都有反馈,可以看到“通过”、“运行错误”、“答案错误”等结果,甚至可以实时看到自己每道题得了多少分,但看不到错误的测试样例。

每道题都有多个数据点,根据每道题通过的数据点的数量获得相应的分数。每道题不限制提交次数,如果提交错误没有任何惩罚,仅以最后一次提交为准。比赛过程中一般可以看到实时排名(如果是考试,一般看不到排名),按照总得分来排名。

IOI赛制的比赛:IOI、PAT、团体程序设计天梯赛、CCF CCSP、洛谷月赛。

ACM/ICPC赛制

在 ACM/ICPC 比赛中一般是三个人使用一台机器,每个题目只有在所有数据点全部正确后才能得到分数。

比赛过程中可以有多次提交机会,实时评测并返回结果。比赛排名根据做题数和罚时来评判,罚时是通过题目的用时之和加上错误提交次数乘以一个系数。在 ACM 相关赛事中,选手允许带纸质资料。

ACM赛制的比赛:ICPC、CCPC、codeforces比赛、leetcode周赛及全国编程大赛、牛客小白赛练习赛挑战赛、传智杯。

CF赛制

是一个在线评测系统,定期会举办比赛。它的比赛特点是在比赛过程中只测试一部分数据(pretests),而在比赛结束后返回完整的所有测试点的测试结果(system tests)。

比赛时可以多次提交,允许 hack 别人的代码(此处 hack 的意思是提交一个测试数据,使得别人的代码无法给出正确答案)。当然,如果想要 hack,必须要锁定自己的代码(换言之,比赛时无法重新提交该题)。

信奥赛制与刷题

信奥赛制特点

信奥赛制,包括CSP-J/S、NOIP,都是采用OI赛制。

其本质可以说是“高考赛制”,一起交卷一起改分,目的是延迟评测,非常适合全国性的大比赛使用。

特点:

①只能提交一次,不稳定性极高,尤其是很多地方的系统是WIN而评测机是Linux更是加剧了这种不稳定性,对选手而言,没有任何优势可言。

② 评分包含部分分,这对于“强力骗分选手”有一定友好性。

③ 时间限制。

刷题方

了解了信奥赛制后,各位有没有明白,刷题要对症下药,否则会适得其反。

正确的刷题,应该是培养以下能力:

① 对于“提交1次,稳定性低”:提升考试管理能力,这里包括情绪管理、统筹兼顾、考试策略、时间规划等。提升调试能力,保证代码的清晰度,能快速定位错误程序。

② 对于“评分包含部分分”:提升模拟能力,拿暴力解题;提升骗分能力,掌握拿分技巧,争取通过部分分,获取更高分数。

③ 对于“时间限制”:提升读题能力,能快速提高读题速度,快速读懂题意;提升代码能力,掌握好算法知识,在保证正确率的前提下,提升代码速度。

举个例子

(1)国内刷题网站某谷:可以多次提交,无时间限制,可以看攻略。

刷这个网站时,要注意给自己限时+不看攻略,否则拖拖拉拉好几个小时做1个题,又是看题解又是多次提交,最后洋洋得意做出来了,其实没有培养起独立思考和稳定的考试能力。

(2)国外刷题网站codeforces:可以提交多次,没有部分分,只有0分或100分。

这个网站不推荐小白和J组选手。省队选手或国集选手可以刷,因为他们的水平已经到了不需要靠部分分去拿分,他们就是要冲高分,快速出思路,快速写代码。而基础级选手还是在训练模拟和暴力得分能力。

结 论

(1)不同刷题网站有不同的赛制,与信奥赛制有区别。

(2)如果是可以提交多次的赛制,这对于在正式考试的发挥稳定性是不利的。

(3)如果是评分不包含部分分的赛制,对于在正式考试中获取更多部分分数是不利的。

(4)需要根据信奥赛制,从提升考试能力的角度来刷题。

搜索建议:针对信奥赛制,如何高效刷题