真正的ACM比赛时的结果判定是由计算机还是有其他人来就决定?
发布网友
发布时间:2023-08-31 21:18
我来回答
共4个回答
热心网友
时间:2023-09-01 10:39
你连oj判题的方法都不知道就不要对电脑判题妄加评判
oj有一组input文件和一组output文件,先运行你的程序,同时在后台开始计时,无法通过编译的是CE,编译时开的内存过大时MLE,然后开始运行,将所有input数据加入输入流中(数据量可能很大,几百万组什么的)在这种大数据下除非你的程序师完美的,否则不可能通过。将输出的内容和output文件比对,不完全一样的WA,数据一样当差换行和空格时是PE,若在计时器计时结束前你的程序未能和output匹配完成(已完成部分都正确)是TLE,输出流没有正常结束是OLE,运行时调用了非法地址时是RE,
在正式比赛中input包括两部分,一部分是出题人这对这道题可能的算法出的边缘数据,运算量最大的数据,特殊数据,另一部分是大数据,就是随机生成大量的合法数据,将数据通过标程给出结果。这两部分数据结合可以以极高的准确率判定提交的程序是否正确
在正式比赛中依然有裁判组,他们只对ac率和预先估计相差极大的情况进行观察,必要时重写oj,进行rejudge,同时选手也可以申请裁判关注(裁判只对真正误判的情况回应),你所想的由专家手动判题的情况是不存在的。因为判题必须在极短时间完成。
仅仅是通过了样例的程序远远不能ac,样例只是帮助你理解题意而已,通常样例无法检测出程序的错误。甚至有些样例是有误导性质的,所以你要走的路还很远
acm的题意描述通常是很严谨的,在题意允许的范围的数据都可能出现,你说的特殊情况很多题目里还没说如何处理的情况我还真没遇到过。
题没过检查一下,看看disguss,看看别人的解题报告什么的,有些东西做多了就理解了,建议你在pkuacm做题,那里题都比较不错,判题比较准,做的人多,讨论和找解题报告都比较方便
还有什么问题可以继续问我啊,我长期在百度答acm的题。
明确的说,是你做错了。是什么题哦?我可以帮你看看题,要是poj的我还或许做过呢
热心网友
时间:2023-09-01 10:40
当然是由系统来决定了
比赛中除了你的提交正确率外
完成的时间速度也是很重要的
专家总不能精确到零点几秒吧。。。
至于你提交的给出Error
首先可能是你的思路不对不符合要求
可能是你的格式不对
又或者是某些特殊的数据输出没有考虑到
系统的判定都是有个测试数据库的
当然也可能是系统的错误原因不过概率非常小
做多了就了解了
热心网友
时间:2023-09-01 10:40
你想的太简单了。
除了special judge应该都是比对你输出的结果与预先存好的答案。完全一样(包括换行)切不超时,不超内存的就能AC。
现场赛跟Online Judge又点区别,但原理是一样的。
然后你没通过,可以先看下是哪类错误。(我估计你是Compile Error的可能性很大)
热心网友
时间:2023-09-01 10:41
Wrong answer是因为你算法不对或不全面,或者coding时候出了问题。
ACM比的就是逻辑全面和代码实现。