五分钟学会上传测试数据

教育网编2023-07-23 09:411640

五分钟学会上传测试数据

0.说明

本博客 3、4步适用于 Luogu

1. 准备

在生成数据之前,您需要准备标程(提交答案题除外)。

2. 生成

您可以用古老的方法生成测试数据。

也可以使用下面的生成器:

#include<bits/stdc++.h>
#define RAND aabs(1LL*rand()*rand()*rand()*rand()*rand()*rand()*rand())
//rand范围过小,自己可以弄一个( 
#define LL long long
using namespace std;
LL aabs(LL x){
    if(x<0) return -x;
    return x;
}
char INN[11]="001.in";
char OUTN[12]="001.out";
void data_in(int cc){//cc 代表数据编号 
    freopen(INN,"w",stdout);
    //数据生成器 
}
void data_out(){
    freopen(INN,"r",stdin);
    freopen(OUTN,"w",stdout);
    //标程(记得初始化) 
}
int Number_Of_The_Test_Case=20;//可以自定义,范围:1~999 
int main(){
    srand(time(0)+2147+4836*47);//可以自定义 

    clock_t t0=clock();
    data_in(1);
    clock_t t1=clock();fprintf(stderr,"第 1 组输入数据生成完成, 耗时 %lf s.\n",(t1-t0)/1000.0);
    data_out();
    clock_t t2=clock();fprintf(stderr,"第 1 组输出数据生成完成, 耗时 %lf s.\n",(t2-t1)/1000.0);
    for(int i=2;i<=Number_Of_The_Test_Case;i++){
    fprintf(stderr, "---- 开始生成第 %d 组数据 ----\n", i);
        INN[0]=(i/100)+'0';
        OUTN[0]=(i/100)+'0';
        INN[1]=(i/10%10)+'0';
        OUTN[1]=(i/10%10)+'0';
        INN[2]=(i%10)+'0';
        OUTN[2]=(i%10)+'0';
        clock_t t0=clock();
        data_in(i);
        clock_t t1=clock();fprintf(stderr,"第 %d 组输入数据生成完成, 耗时 %lf s.\n",i,(t1-t0)/1000.0);
        data_out();
        clock_t t2=clock();fprintf(stderr,"第 %d 组输出数据生成完成, 耗时 %lf s.\n",i,(t2-t1)/1000.0);
    }
    fprintf(stderr,"完成!\n");
    return 0;
}

3. 上传

五分钟学会上传测试数据将这些东西 全选,压缩为.zip格式的压缩包 (压缩包内只包含有.in .out的文件,不包含任何文件夹)

五分钟学会上传测试数据到要上传数据的题里,点击“编辑题目”

五分钟学会上传测试数据进入后点击“数据点配置”这一类别,之后寻找“上传数据”并点击,选择本地文件并输入验证码

4. 扩展

五分钟学会上传测试数据

可以在测试数据页面更改数字,如上图。

SPJ

当一个题目可以接受多种正确答案,即有多组解的时候,题目就必须被 Special Judge。 Special Judge 程序使用输入数据和一些其他信息来判答你程序的输出,并将判答结果返回。

详见:Special Judge 使用说明

自定义计分脚本

有的时候出了一道题想要自定义比较复杂的计分策略,但是单靠 Subtask 的组合无法满足,这时候可以使用计分脚本。

详见:自定义计分脚本

交互题功能说明

交互题既用户提交的程序,通过出题人提供的交互库,与判题程序(SPJ)进行交互并获得输入、解答问题。

详见:交互题功能说明

作者: lzx1609

评论区