oj刷题注意事项

1.oj赛制介绍

参考自:https://zhuanlan.zhihu.com/p/129311302

介绍一下编程比赛中最常见的三种赛制:ACM赛制、OI赛制、IOI赛制。

ACM赛制:每道题提交之后都有反馈,可以看到“通过”、“运行错误”、“答案错误”等等结果,但看不到错误的测试样例(leetcode周赛可以看到),每道题都有多个测试点,每道题必须通过了所有的测试点才算通过。每道题不限制提交次数,但没通过的话会有罚时,仅以最后一次提交为准。比赛过程中一般可以看到实时排名,通过题数相同的情况下按照答题时间+罚时来排名。

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

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

OI赛制的比赛:NOI全国青少年信息学奥林匹克竞赛、CCF CSP、考研机试、蓝桥杯、牛客OI赛、全国高校计算机能力挑战赛。

IOI赛制:每道题提交之后都有反馈,可以看到“通过”、“运行错误”、“答案错误”等等结果,甚至可以实时看到自己每道题得了多少分,但看不到错误的测试样例。每道题都有多个测试点,根据每道题通过的测试点的数量获得相应的分数。每道题不限制提交次数,如果提交错误没有任何惩罚,仅以最后一次提交为准。比赛过程中一般可以看到实时排名(如果是考试,一般看不到排名),按照总得分来排名。可以说,IOI赛制是结合了OI赛制和ACM赛制的特点。

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

2.输出格式问题

acwing对于输出格式非常宽松,末尾空格空行都能过,但有不少oj会卡输出格式,注意审题。

平时做题,最好控制一下输出格式,否则爆0就很难受。

末尾不要有空格做法:

1
2
3
4
5
6
// 示例
cout<<a[0];
for(int i=1;i<n;i++).//a[0]先输出了,故循环从1开始
{
cout<<" "<<a[i];
}

3.Java刷题注意事项

参考1:https://www.acwing.com/blog/content/431/

参考2:https://www.acwing.com/blog/content/593/

参考3:https://www.acwing.com/blog/content/2414/

参考4:https://www.cnblogs.com/HardBass/p/11702918.html

4.Java与C++刷题的多方位对比

参考1:https://www.cnblogs.com/hx97/p/12347699.html

参考2:我的转载文章C++ STL与Java util对比

坚持原创技术分享,您的支持将鼓励我继续创作!