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

欢迎阅读我使用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": "<p>题目描述,html语法,要用markdown公式的地方还是写markdown语法,只不过非英文字符得换成Unicode编码(挺烦的)</p>"
    },
    "tags": [
        "标签"
    ],
    "input_description": {
        "format": "html",
        "value": "<p>输入描述在这里</p>"
    },
    "output_description": {
        "format": "html",
        "value": "<p>输出描述在这里</p>"
    },
    "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": "<p>提示的内容</p>"
    },
    "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格式的题目,最后发觉这样实在是太麻烦了,所以还是一道题一道题挨个慢慢录的。╮(╯▽╰)╭
因为懒得打字,所以我把每道题的题目啊,输入啊什么的截图上传到图床上(除了测试样例),再录题的时候直接放的图片(这样效率就高了很多)。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值