题目管理


# 题目管理

# 一、HOJ题目

在这里插入图片描述

# 1. 导出题目

点击选择需要的题目,便可以批量导出成一个zip压缩包,分别对应一个json格式的题目数据,一个对应名字的文件夹存放评测数据文件,具体的文件结构如下:

+-- problem_1000.json
+-- problem_1000
|   +-- 1.in
|   +-- 1.out
|   +-- ....
+-- problem_1001.json
+-- problem_1001
|   +-- 1.in
|   +-- 1.out
|   +-- ....
1
2
3
4
5
6
7
8
9
10

# 2. 导入题目

选择需要导入的题目数据zip压缩包,注意不要多一层文件夹进行压缩请保证题目json文件的名字与其对应的存放评测数据的文件夹名字一致,具体文件格式如下:

+-- problem_1000.json
+-- problem_1000
|   +-- 1.in
|   +-- 1.out
|   +-- ....
+-- problem_1001.json
+-- problem_1001
|   +-- 1.in
|   +-- 1.out
|   +-- ....
1
2
3
4
5
6
7
8
9
10

# 3. 题目的json文件格式

请严格按照以下格式,才可以正常导入。

  • ACM题目
{
  "judgeMode":"default", // 普通判题:default, 特殊判题:spj, 交互判题:interactive
  // 题目支持的语言如下,可多可少
  "languages": ["C", "C++", "Java", "Python3", "Python2",  "Golang", "C#"], 
  "samples": [
      {
          "input": "1.in", 
          "output": "1.out",
      },
      {
          "input": "2.in", 
          "output": "2.out",
      }
  ], 
  "tags": ["测试题","测试"], // 题目标签,一般不超过三个 
  "problem": {
      "auth": 1, // 默认为1公开,2为私有,3为比赛中
      "author": "admin", // 题目上传的作者,请使用用户名
      "isRemote": false, // 均为非VJ题目,不用修改
      "problemId": "HOJ-1010", // 题目的展示id
      "description": "", // 题目的描述,支持markdown语法
      "source": "", // 题目来源
      "title": "", // 题目标题
      "type": 0,  // 0为ACM题目,1为OI题目
      "timeLimit": 1000, // 时间限制 单位是ms
      "memoryLimit": 256, // 空间限制 单位是mb
      "input": "", // 题目的输入描述
      "output": "", // 题目的输出描述
      "difficulty": 0, // 题目难度,1为简单,2为中等,3为困难
      "examples": "", // 题目的题面样例,格式为<input>输入</input><output>输出</output><input>输入</input><output>输出</output>
      "ioScore": 100, // OI题目总得分,与测试点总分一致
      "codeShare": true, // 该题目是否允许用户共享其提交的代码 
      "hint": "", // 题目提示
      "isRemoveEndBlank": true, // 评测数据的输出是否自动去掉行末空格
      "openCaseResult": true,  // 是否允许用户看到各个评测点的结果
      "judgeCaseMode":"default", // default、ergodic_without_error
       // "spjLanguage:"C" // 特殊判题的程序代码语言
      // "spjCode":"" // 特殊判题的代码,
      "isFileIO": false, // 是否为文件IO输入输出,
      "ioReadFileName":null, // 题目指定的file io输入文件的名称
      "ioWriteFileName": null, // 题目指定的file io输出文件的名称
  }, 
  "codeTemplates": [
      {
          "code": "", // 模板代码
          "language": "C" // 模板代码语言
      }, 
      {
          "code": "", // 模板代码
          "language": "C++"// 模板代码语言
      }
   ],
    // 用户程序的额外库文件 key:文件名,value:文件内容,如果没有请去掉
   "userExtraFile":{
       "testlib.h":"code",
       "stdio.h":"..."
   },
    // 特殊或交互程序的额外库文件 key:文件名,value:文件内容,如果没有请去掉
    "judgeExtraFile":{
        "testlib.h":"code",
        "stdio.h":"..."
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
  • OI题目
{
  "judgeMode":"default", // 普通判题:default, 特殊判题:spj, 交互判题:interactive
  // 题目支持的语言如下,可多可少
  "languages": ["C", "C++", "Java", "Python3", "Python2",  "Golang", "C#"], 
  "samples": [
      {
          "input": "1.in", 
          "output": "1.out",
          "score": 50,
          // 如果是oi题目且judgeCaseMode为subtask_lowest或subtask_average可以配置分组
          //"groupNum": 1
      },
      {
          "input": "2.in", 
          "output": "2.out",
          "score": 50,
          // 如果是oi题目且judgeCaseMode为subtask_lowest或subtask_average可以配置分组
          //"groupNum": 1
      }
  ], 
  "tags": ["测试题","测试"], // 题目标签,一般不超过三个 
  "problem": {
      "auth": 1, // 默认为1公开,2为私有,3为比赛中
      "author": "admin", // 题目上传的作者,请使用用户名
      "isRemote": false, // 均为非VJ题目,不用修改
      "problemId": "HOJ-1010", // 题目的展示id
      "description": "", // 题目的描述,支持markdown语法
      "source": "", // 题目来源
      "title": "", // 题目标题
      "type": 0,  // 0为ACM题目,1为OI题目
      "timeLimit": 1000, // 时间限制 单位是ms
      "memoryLimit": 256, // 空间限制 单位是mb
      "input": "", // 题目的输入描述
      "output": "", // 题目的输出描述
      "difficulty": 0, // 题目难度,1为简单,2为中等,3为困难
      "examples": "", // 题目的题面样例,格式为<input>输入</input><output>输出</output><input>输入</input><output>输出</output>
      "ioScore": 100, // OI题目总得分,与测试点总分一致
      "codeShare": true, // 该题目是否允许用户共享其提交的代码 
      "hint": "", // 题目提示
      "isRemoveEndBlank": true, // 评测数据的输出是否自动去掉行末空格
      "openCaseResult": true,  // 是否允许用户看到各个评测点的结果
      "judgeCaseMode":"default" // oi题目其他值为subtask_lowest或subtask_average
       // "spjLanguage:"C" // 特殊判题的程序代码语言
      // "spjCode":"" // 特殊判题的代码
  }, 
  "codeTemplates": [
      {
          "code": "", // 模板代码
          "language": "C" // 模板代码语言
      }, 
      {
          "code": "", // 模板代码
          "language": "C++"// 模板代码语言
      }
   ],
    // 用户程序的额外库文件 key:文件名,value:文件内容,如果没有请去掉
   "userExtraFile":{
       "testlib.h":"code",
       "stdio.h":"..."
   },
    // 特殊或交互程序的额外库文件 key:文件名,value:文件内容,如果没有请去掉
    "judgeExtraFile":{
        "testlib.h":"code",
        "stdio.h":"..."
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66

#

# 二、导入QDUOJ、Hydro、FPS格式的题目

  1. 请严格按照青岛oj的后台导出的压缩文件来上传。
  2. 请使用标准的FPS格式的题目数据文件(.xml)
  3. 目前仅支持Hydro的普通评测、交互评测、特殊评测、子任务类型的题目

导入题目

# 三、导入其它OJ题目

导入HDU、Codeforces、POJ、GYM、AtCoder、SPOJ、Libre的题目,只需提供该题目的题号便可一键导入。

Tips

管理员进入后台,点击题目列表

在这里插入图片描述

然后添加上方的添加按钮

在这里插入图片描述

在弹出窗中选择OJ名字及题号,便可导入

在这里插入图片描述

Last update: March 13, 2024 00:38
Contributors: Himit_ZH