首页 > 代码库 > 【教程】如何正确的写一个Lemon/Cena的SPJ(special judge)
【教程】如何正确的写一个Lemon/Cena的SPJ(special judge)
转自:http://www.cnblogs.com/chouti/p/5752819.html
Special Judge:当正确的输出结果不唯一的时候需要的自定义校验器
首先有个框架
#include<fstream>ifstream fin,fout,fstdofstream fscore,freport;double Judge(){}int main(int argc,char *argv[]) { //put something to fstreams... //Judge&output report //close files return 0}
然后fstream的接口对于lemon和cena不同
For Lemon:
所有的都从argv[]里面读入
argv[1]:输入文件
argv[2]:选手输出文件
argv[3]:标准输出文件
argv[4]:单个测试点分值
argv[5]:输出最终得分的文件
argv[6]:输出错误报告的文件
然后lemon的spj就大概这样写
int main(int argc,char *argv[]){ fin.open(argv[1]); fout.open(argv[2]); fstd.open(argv[3]); fscore.open(argv[5]); freport.open(argv[6]); int score=atoi(argv[4]); fscore<<score*Judge()<<endl; fin.close(); fout.close(); fstd.close(); fscore.close(); freport.close(); return 0;}
For Cena:
“score.log” 输出最终得分
“report.log”输出错误报告
#FILENAME”.in”输入文件
#FILENAME”.out”选手输出文件
argv[2]:标准输出文件
argv[1]:单测试点分值
int main(int argc,char *argv[]){ fscore.open("score.log"); freport.open("report.log"); fstd.open(argv[2]); fin.open("set.in"); fout.open("set.out"); int score=atoi(argv[1]); fscore<<score*Judge()<<endl; fin.close(); fout.close(); fstd.close(); fscore.close(); freport.close(); return 0;}
*若描述和代码有不同,以代码为主qwq
*我就会这两个了
【教程】如何正确的写一个Lemon/Cena的SPJ(special judge)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。