本博客 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
评论列表