青岛大学开源 Online Judge 网页批量上传题目

这是一个目录

  • 欢迎阅读我使用Markdown编辑器写的文章
  • 背景
  • 如何批量导入
    • 文件结构
    • 处理json文件
    • 上传
  • 写在最后

欢迎阅读我使用Markdown编辑器写的文章

你好! 这是我第一次使用 Markdown编辑器 写博客(一次勇敢的尝试!)。不怎么懂Markdown的语法。写的不好的地方欢迎指出。

背景

最近突然拿到了很多题目和测试样例,需要一一上传到平台上,挨个点增加题目肯定太慢了,需要批量上传。看了官方文档之后发现没有关于批量上传的描述,只有一个从旧版本迁移。然而我根本不能登录服务器,显然做不了那些骚操作。怎么办呢,发现在问题菜单里有一个导入/导出题目,于是这篇博客就出现了!
Build Version: 20190326-74644

如何批量导入

文件结构

需要一个压缩包,目录结构大概是这样的:
ProblemSet.zip
|-1
|–problem.json
|–testcase
|—1.in
|—1.out
|…
|-2
|–problem.json
|–testcase
|—1.in
|—1.out
|…
|…

处理json文件

文件夹的序号需不需要连着我还没试过。 需要处理的是json文件的内容:

{
    "display_id": "题目的ID(ID重复会怎么样没试过)",
    "title": "题目的标题,中文是把每个字转换成Unicode编码(之后的值中的中文也一样)",
    "description": {
        "format": "html",
        "value": "

题目描述,html语法,要用markdown公式的地方还是写markdown语法,只不过非英文字符得换成Unicode编码(挺烦的)

"
}, "tags": [ "标签" ], "input_description": { "format": "html", "value": "

输入描述在这里

"
}, "output_description": { "format": "html", "value": "

输出描述在这里

"
}, "test_case_score": [ { "score": 这道题的分数如10, "input_name": "1.in", "output_name": "1.out" }, { "score": 这道题的分数, "input_name": "2.in", "output_name": "2.out" }, { "score": 这道题的分数, "input_name": "3.in", "output_name": "3.out" }, { "score": 这道题的分数, "input_name": "4.in", "output_name": "4.out" }, { "score": 这道题的分数, "input_name": "5.in", "output_name": "5.out" }, { "score": 这道题的分数, "input_name": "6.in", "output_name": "6.out" }, { "score": 这道题的分数, "input_name": "7.in", "output_name": "7.out" }, { "score": 这道题的分数, "input_name": "8.in", "output_name": "8.out" }, { "score": 这道题的分数, "input_name": "9.in", "output_name": "9.out" }, { "score": 这道题的分数, "input_name": "10.in", "output_name": "10.out" } ], "hint": { "format": "html", "value": "

提示的内容

"
}, "time_limit": 时间限制如1000, "memory_limit": 内存限制如256, "samples": [ { "input": "输入样例", "output": "输出样例" } ], "template": {}, "spj": null, "rule_type": "规则:OI/ACM", "source": "来源", "answers": [ { "language": "语言", "code": "传说中的标程,需要换行的地方用\n" } ] }

testcase中的输入输出文件需要和test_case_score中的对应。

上传

完成后点 Import QDUOJ Problems (beta) 下的Choose File,然后Upload就行了!!!

不知道Import FPS Problems (beta)Import QDUOJ Problems (beta) 有什么区别,我用的是 Import QDUOJ Problems (beta)

水平有限,难免有不足之处,还请大佬们不吝赐教!

写在最后

实际上这种文件结构就是模仿了OJ自带的“导出题目”导出的压缩包
因为我拿到的是pdf格式的题目,最后发觉这样实在是太麻烦了,所以还是一道题一道题挨个慢慢录的。╮(╯▽╰)╭
因为懒得打字,所以我把每道题的题目啊,输入啊什么的截图上传到图床上(除了测试样例),再录题的时候直接放的图片(这样效率就高了很多)。

你可能感兴趣的:(OnlineJudge)