一个类似acm系统,程序在线评判,怎么做出来

樊德强 2019-12-21 18:09:00

推荐回答

网站可以调用编译器,编译器就是一段程序,使用java的话,直接System.getRuntime.exec调用本地命令;现在PKU或浙大的acm评判系统是走一种概率统计的路子,类似测试驱动开发中的“三角法”,即对每一份提交都跑一遍预先设定好的一串测试用例,这些测试用例必须写得有代表性,比如专挑临界值等等,一串精心准备的测试用例跑下来,提交的程序对不对就能基本能断定了。
窦连秀2019-12-21 18:21:20

提示您:回答为网友贡献,仅供参考。

其他回答

  • CE最大,CE了的话,后面的不用看了如果编译通过了以后,要看运行运行中的话,RE,MLE,TLE最大,只要有一个问题出现了,立刻终止运行如果程序成功运行,没有出错,那么看输出判断AC最小,要是AC了就过了然后接着是PE,只有格式问题才是PE如果输出错误答案,就是WA所以基本来说顺序是CE>RE=MLE=TLE>WA>PE>AC。
    樊振清2019-12-21 19:12:20
  • 竞赛进行5个小时,一般有7道或以上试题,由同队的三名选手使用同一台计算机协作完成。当解决了一道试题之后,将其提交给评委,由评委判断其是否正确。若提交的程序运行不正确,则该程序将被退回给参赛队,参赛队可以进行修改后再一次提交该问题。程序判定结果有如下7种:1、Accepted.——通过!AC2、WrongAnswer.——答案错。WA3、RunTimeError.——程序运行出错,意外终止等。RTE4、TimeLimitExceeded.——超时。程序没在规定时间内出答案。TLE5、PresentationError.——格式错。程序没按规定的格式输出答案。PE6、MemoryLimitExceeded.——超内存。程序没在规定空间内出答案。MLE7、CompileError.——编译错。程序编译不过。CE竞赛结束后,参赛各队以解出问题的多少进行排名,若解出问题数相同,按照总用时的长短排名。总用时为每个解决了的问题所用时间之和。一个解决了的问题所用的时间是竞赛开始到提交被接受的时间加上该问题的罚时。没有解决的问题不记时。例如: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队以总用时少而获胜。美国英语为竞赛的工作语言。竞赛的所有书面材料包括试题将用美国英语写出,区域竞赛中可以使用其它语言。总决赛可以使用的程序设计语言包括pascal,c,c++及java,也可以使用其它语言。具体的操作系统及语言版本各年有所不同。
    齐明皓2019-12-21 18:54:59
  • 竞赛进行5个小时,一般有7道或以上试题,由同队的三名选手使用同一台计算机协作完成。当解决了一道试题之后,将其提交给评委,由评委判断其是否正确。若提交的程序运行不正确,则该程序将被退回给参赛队,参赛队可以进行修改后再一次提交该问题。程序判定结果有如下7种:1、Accepted.——通过!AC2、WrongAnswer.——答案错。WA3、RunTimeError.——程序运行出错,意外终止等。RTE4、TimeLimitExceeded.——超时。程序没在规定时间内出答案。TLE5、PresentationError.——格式错。程序没按规定的格式输出答案。PE6、MemoryLimitExceeded.——超内存。程序没在规定空间内出答案。MLE7、CompileError.——编译错。程序编译不过。CE竞赛结束后,参赛各队以解出问题的多少进行排名,若解出问题数相同,按照总用时的长短排名。总用时为每个解决了的问题所用时间之和。一个解决了的问题所用的时间是竞赛开始到提交被接受的时间加上该问题的罚时,Python,Scala等语言。具体的操作系统及语言版本各年有所不同。
    齐新萍2019-12-21 18:38:27

相关问答

大学生程序设计大赛介绍ACM/ICPCACMInternationalCollegiateProgrammingContest,国际大学生程序设计竞赛是由国际计算机界历史悠久、颇具权威性的组织ACM,1411所大学的3150支代表队,他们分别在127个赛场中进行比赛,以争夺全球总决赛的73个名额,其激烈程度可想而知。2019年第30届ACM/ICPC亚洲赛区预赛共设了北京、成都、汉城、东京等11个赛站,来自亚洲各国知名高校的各个代表队进行了激烈的角逐。中国内地从1996年开始参加ACM/ICPC亚洲区预赛,至今已历九届。前六届赛区设在上海,由上海大学主办;2002年分设北京和西安赛区,分别由清华大学和西安交通大学主办;2003年设北京和广州赛区,分别由清华大学和中山大学主办。2004年设北京和上海赛区,分别由北京大学和上海交通大学举办。第30届ACM国际大学生程序设计竞赛亚洲区预选赛北京赛区比赛将由北京大学主办,定于2019年11月13日在北京大学举行。届时,来自全国各所著名高校的选手将云集北京大学,为争夺全球决赛名额进行一场高水平的程序设计角逐。当今时代,计算机教育已经成为大学教育的一个极其重要的组成部分。北京大学一向十分重视ACM/ICPC竞赛在校园内的开展,将其作为学校迈向世界一流大学建设过程中的重点学生科技竞赛活动来组织实施。学校对本次竞赛的成功举办高度重视,成立了本届竞赛的领导小组,由北京大学林建华副校长亲自担任组长;同时,学校还成立了本届竞赛的组织委员会,由北京大学信息科学技术学院院长何新贵院士担任主任,并聘请了信息技术领域的多位院士担任评审委员会的顾问。本次竞赛的参赛选手均是中国大学中的计算机顶尖人才,各所高校的教师以及参赛选手之间的交流将使其成为展示中国大学生计算机才华的良好机会和参赛学校加强合作、增进友谊的桥梁。相信通过我们的共同努力,本次竞赛必将成为中国计算机教育界的一次盛会,为中国计算机教育事业的发展作出更大贡献!网络。