数据
对于传统题,您上传的×.zip
数据包应当包括这些内容:
- 题目配置文件
- 测试数据
- 额外测试数据(包括题面中所给的测试样例)
- (开启 hack)数据检验器
- (开启 hack)标准程序
题目配置文件
题目配置文件应当命名为problem.conf
。这是一份配置的样例:
n_tests 10 n_ex_tests 1 n_sample_tests 1 input_pre www input_suf in output_pre www output_suf out time_limit 1 memory_limit 512 output_limit 64 use_builtin_judger on use_builtin_checker ncmp
测试点
n_tests 10 n_ex_tests 1 n_sample_tests 1
这三行分别代表标准测试点、额外测试点和测试样例的数量。其中,额外测试点的前几个一定是测试样例,所以你必须把题目中给出的测试样例放到额外测试点当中。
UOJ 的 extra test 是指在 AC 的情况下会测额外数据,如果某个额外数据通不过会被倒扣3分。
input_pre www input_suf in output_pre www output_suf out
这四行分别指明了每个测试点输入文件的前缀、扩展名、输出文件的前缀、扩展名。
标准测试点的文件名应当形如:www1.in
、www1.out
、www2.in
、www2.out
……
额外测试点的文件名应当形如:ex_www1.in
、ex_www1.out
、ex_www2.in
、ex_www2.out
……
限制
time_limit 1 memory_limit 512 output_limit 64
这三行配置了评测时对选手程序的时间限制、内存空间限制和输出限制。
时间限制的单位为秒,不能为小数。内存空间和输出限制的单位为 MB。
校验器(checker)
校验器用来检查选手程序的输出是否正确。
use_builtin_judger on use_builtin_checker ncmp
第一行表示使用内建校验器,第二行表示使用的校验器类型。testlib 提供了很多奇奇怪怪的校验器。
校验器 | 功能 |
---|---|
ncmp |
(单行整数序列)比较有序64位整数序列 |
wcmp |
(单行字符串序列)比较字符串序列 |
fcmp |
(多行数据)逐行进行全文比较,不忽略行末空格,忽略文末回车。 |
icmp |
比较单个整数 |
ncmp |
(单行整数序列)比较有序64位整数序列 |
uncmp |
(单行整数序列)比较无序64位整数序列,即排序后比较 |
acmp 或rcmp |
比较单个双精度浮点数,最大绝对误差为 1.5e-6 |
dcmp |
比较单个双精度浮点数,最大绝对或相对误差为 1.0e-6 |
rcmp4 |
比较双精度浮点数序列,最大绝对或相对误差为 1.0e-4 |
rcmp6 |
比较双精度浮点数序列,最大绝对或相对误差为 1.0e-6 |
rcmp9 |
比较双精度浮点数序列,最大绝对或相对误差为 1.0e-9 |
rncmp |
比较双精度浮点数序列,最大绝对误差为 1.5e-5 |
hcmp |
比较单个有符号大整数 |
lcmp |
逐行逐字符串进行全文比较,多个空白字符视为一个 |
caseicmp |
多组数据,比较单个整数,输出形如:Case <caseNumber>: <number> |
casencmp |
多组数据,比较整数序列,输出形如:Case <caseNumber>: <number> <number> ... <number> |
casewcmp |
多组数据,比较字符串序列,输出形如:Case <caseNumber>: <token> <token> ... <token> |
yesno |
比较单个YES 和NO |
其他
您还可以在管理界面通过试题配置
按钮进行配置。