如何配置luogu,codeforces的spj(special judge)

article/2025/9/26 23:27:28

洛谷的spj配置很资瓷啊,以下部分引用来自luogu官方链接

codeforces同理

https://www.luogu.org/wiki/show?name=%E5%B8%AE%E5%8A%A9%EF%BC%9Aspecial%20judge

搞了一上午1020导弹拦截的spj

step1

先从链接中下载那个testlib-master文件解压后,在那个文件夹中创建checker.cpp

这里写图片描述

在程序中,有3个重要的结构体:inf指数据输入文件(本例没有),ouf指选手输出文件,ans指标准答案。

然后,可以从这3表结构体读入数据,不需要用到标准输入输出。如果读到的数据和下面的期望不一致,则spj返回fail结果。

step2

写spj辣!以P1020导弹拦截为例

以下读入命令可以使用:(为引用部分)

void registerTestlibCmd(argc, argv)

初始化checker,必须在最前面调用一次。

char readChar()

读入一个char,指针后移一位。

char readChar(char c)

和上面一样,但是只能读到一个字母c

char readSpace()

同 readChar(’ ‘).

string readToken()

读入一个字符串,但是遇到空格、换行、eof为止、

long long readLong()

读入一个longlong/int64

long long readLong(long long L, long long R)

同上,但是限定范围(包括L,R)

int readInt()

读入一个int

int readInt(int L, int R),

同上,但是限定范围(包括L,R)`

double readReal()

读入一个实数

double readReal(double L, double R),

同上,但是限定范围(包括L,R)

double readStrictReal(double L, double R, int minPrecision, int maxPrecision),

读入一个限定范围精度位数的实数。

string readString(),

string readLine()

碰撞一行string,到换行或者eof为止

void readEoln()

读入一个换行符

void readEof()

读入一个eof

int eof()

读完数据后,就可以开始spj了。选手程序能用的功能,spj一样能用。在洛谷中,spj照样受到时间空间限制。而且不能标准输入输出。

最后就是输出啦。输出跟printf有点像。

quitf(_ok, "The answer is correct. answer is %d", ans);

给出AC

quitf(_wa, "The answer is wrong: expected = %f, found = %f", jans, pans);

给出WA

quitp(0.5,"Partially Correct get %d percent", 50);

给出PC(Partially Correct),并且可以获得该点50%的分数

#include "testlib.h"int main(int argc, char* argv[]) {registerTestlibCmd(argc, argv);int pans1=ouf.readInt();int jans1=ans.readInt();ans.readEoln();int pans2=ouf.readInt();int jans2=ans.readInt();if(pans1!=jans1&&pans2==jans2)quitp(0.5,"Partially Correct get %d percent.On Ques 1,your ans is wrong:expected = %d,found = %d", 50,jans1,pans1);else if(pans1==jans1&&pans2!=jans2)quitp(0.5,"Partially Correct get %d percent.On Ques 2,your ans is wrong:expected = %d,found = %d", 50,jans2,pans2);else if(pans1==jans1&&pans2==jans2)quitf(_ok, "Good job!The answer is correct.");else quitf(_wa, "On Ques 1,your ans is wrong:expected = %d,found = %d", jans1, pans1);
}

step3

将checker.cpp编译形成checker.exe文件

使cmd定位到testlib-master文件夹下

输入如下命令 CD空格+文件夹位置

这里写图片描述

然后键入如下命令

checker.exe in.txt(输入文件) out.txt(输出文件) ans.txt(标准答案文件)

这里写图片描述

显示结果如图

step4

直接将checker.cpp(必须这个名字)塞入测试数据的压缩包内然后上传就行了


http://chatgpt.dhexx.cn/article/nsNRNSoa.shtml

相关文章

SPJ数据库例题(数据库实验)

题目内容: 设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式: S(SNO,SNAME,STATUS,CITY); P(PNO,PNAME&#xff0…

mysql建立spj_数据库概论——SQL练习一(SPJ零件问题)

系统: MySQL 8.0.19 题目: 三张表: S(SNO, SNAME, STATUS, CITY) P(PNO, PNAME, COLOR, WEIGHT, CITY) J(JNO, JNAME,CITY) SPJ(SNO, PNO, JNO, PRICE, QTY) S表示供应商,各属性依次为供应商号,供应商名,供应商状态值,供应商所在城市; P表示零件,各属性依次为零件号,…

SPJ数据库例题

1道论述题: 书本P71页习题6: 设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式: S(SNO,SNAME,STATUS,CITY); P(P…

sql spj

一 select sno,snamevar from student; select sno,snamevar,sdeptvar from student; select * from student; select snamevar,2014-age from student; select snamevar,‘year of birth’,2014-age,lower(sdeptvar) from student; select snamevar from student where …

浅谈online judge平台 spj [special judge] 使用 | 修改问题

浅谈oj平台 spj 使用 | 修改问题 首先:参数对应返回值代码提交几种spj第一种:简单的一类特判第二种:多组输入的特判第三种:需要判断特殊情况[impossible]第四种:带有[testlib.h]的spj第五种:GCPC [German C…

HUSTOJ SPJ 示例

什么是 SPJ SPJ 是 Special Judge 的意思。 什么时候使用 SPJ 当题目答案不止一个的时候,我们就必须使用 SPJ。 如何使用 SPJ 题目中打开 SPJ 首先,我们需要在出题的时候,增加 SPJ 选项,如下图所示。 题目保存后&#xff0…

《数据库原理与运用》上机实验之SPJ

《数据库原理与运用》上机实验之SPJ 前言一、关系模式二、使用SQL语句创建、修改基本表1.对基本表字段名的增加2.对基本表字段名的增加3.索引 二、使用SQL语句对数据库表的单表查询1.对指定列的查询2.对表达式计算和改变表达方式的查询3.消除重复行的查询4.WHERE条件查询5.分组…

SPJ数据库查询

起始 SQL语句建表 建表 后续图示为在SQL Server Management Studio中快捷创建的,并不是代码创建的。 CREATE TABLE S ( SNO CHAR(2) UNIQUE, SNAME CHAR(6), STATUS CHAR(2), CITY CHAR(4));CREATE TABLE J (JNO CHAR(2), JNAME CHAR(8), CITY CHAR(4) ); CREATE …

二 DeepinV20版本安装

安装 https://www.deepin.org/zh/download/ 准备工作:一个U盘,4G就够;镜像包;老毛桃或是官网提供的启动工具。 分区规划:至少3个区, 一个挂 / (建议至少10G), SWAP分区&#xff08…

Windows10+deepin双系统安装(选用意义,安装教程)

1.为什么选用deepin 为什么要选用deepin,想必能看到该篇文章,肯定知道deepin是linux系统,而linux系统的发行版众多,至于具体那些,又有什么区别,请读者参考https://blog.csdn.net/bernin/article/details/83…

Deepin安装NVIDIA显卡驱动

显卡驱动可以通过官方库安装,本文使用官方NVIDIA 驱动手动安装。 时间:2020.8 系统版本:Deepin v20 beta Nvidia驱动安装 1 下载驱动 进入NVIDIA官网下载Linux驱动:NVIDIA官网驱动下载 找到对应驱动后下载,记住下载位…

【系统 win10 deepin】双系统安装(win10和deepin双系统)

概述 所有的事情都源自于一只蝙蝠,在这个无聊且漫长的寒假,终于能够实现躺在家里也能为国家做出贡献的时候了。 既然闲着也是闲着,那为何不折腾一下自己的电脑呢。 相信很多猿在虚拟机里已经体验过linux系统,那么怎么在实体机上怎…

Deepin重装Win10

Deepin重装Win10 分享荣耀magicbook 8256 全盘安装deepin后,重装win10之旅。 如有需要请务必先看完再做!!!会清除电脑硬盘上的全部数据!!!请自行备份!! 重装win10系统我…

【Deepin】 Deepin 系统安装教程

安装过程 准备准备足够的磁盘空间下载格式化制作启动盘 安装设置U盘启动项根据引导安装新建分区 设置 记录一下第N次安装Deepin系统的过程。 准备 准备足够的磁盘空间 deepin用于生活日常的话,不需要太大的空间。我准备了40G左右的空间(很小&#xff0…

国产操作系统Deepin的安装

一、简介 武汉深之度科技有限公司(以下简称深度科技)成立于 2011 年,是专注基于 Linux 的国产操作系统研发与服务的商业公司。 作为国内顶尖的操作系统研发团队,深度科技以提供安全可靠、美观易用的国产操作系统与开源解决方案为…

国产操作系统之深度deepin安装

一、深度deepin简介 Deepin(原名Linux Deepin)致力于为全球用户提供美观易用,安全可靠的Linux发行版。deepin项目于2008年发起,并在2009年发布了以linux deepin为名称的第一个版本。2014年4月更名为Deepin,在中国常被称为“深度操作系统“。深…

Deepin 20版 安装教程(Vmware)

最近一直关注着一个国产系统的动态,至今已经更新到20版,界面优美,体验绝佳,舒适度绝对不比Mac本差,基于Linux内核开发自研的国产系统,真的是细微之处,体验不凡!欢迎试水。 软件的生态…

如何安装 Deepin 20.1深度操作系统(图文) ?

Deepin 深度操作系统是一个用户友好的基于 Debian 的 Linux 发行版。它是一个免费和开源的操作系统,主要用于桌面级别。最近,Deepin 20.1 的稳定版本已经发布。Deepin 20.1 附带了稳定的内核版本 5.4 和 Debian 10.6 包存储库。 系统要求 More than 2 …

Windows+Deepin双系统的安装(win11+deepin20.7.1)

WindowsDeepin双系统的安装(win11deepin20.7.1) 目录 [Win11deepin20的安装方法](https://blog.csdn.net/m0_53397118/article/details/121883445#%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0Win11%2Bdeepin20%E7%9A%84%E5%AE%89%E8%A3%85%E6%96%…

window+deepin双系统安装

说明 参考教程:https://baijiahao.baidu.com/s?id1662960328855347503 特别注意,最好用最新的PE工具,我用的 微PE。因为我弄过一次全盘安装,导致整个硬盘在PE工具中的diskgenius无法识别,最终为U盘安装最新版PE工具后…