codeforces的polygon平台使用指北

前言

近来被迫用Polygon造题。
polygon是codeforces开放给公众使用的一个造题平台。
地址是https://polygon.codeforces.com
由于平台是全英文的,所以这篇教程是面向懒得看英语的小伙伴们的。

优缺点

优点是用polygon造题,出锅率小,自动化程度高。
国内访问不稳定,快如闪电和慢似蜗牛交替,令人抓狂。

testlib.h

是codeforces的造题工具库。
可以写gen(数据生成器),checker(常说的spj,包括简单文件逐行比较也算),validator(用于检验数据合法性)。
具体的使用方法请看:https://github.com/MikeMirzayanov/testlib
要本地编译的话,放进minGW64的include目录内就可以编译含#include "testlib.h"的程序了。

流程

codeforces的polygon平台使用指北_第1张图片第一步,新建题目。
名字仅允许小写英文字母,数字和连字符’-’.

polygon上造题是有轻量的版本控制的。服务器上会保存一个版本,每次你可以将当前版本爬取到本地,然后进行修改。任何修改都要commit,否则只会保存在本地。
codeforces的polygon平台使用指北_第2张图片
所有的改动都列出在了上面,但凡是列出的改动都是未commit的本地改动。

General info

在这里你可以设置输入输出文件名,时空限制等等。
右侧的are test well-formed选项建议勾选,会自动检测你的输入文件是否well-form。不合格的输出文件将无法通过Verification。具体要求请看小字。
codeforces的polygon平台使用指北_第3张图片还可以开启交互题选项和部分分选项、添加算法tag之类的。

Statements

这就是传说中的题面和题解。

Files

传一些gen,checker的地方
注意gen的随机数种子由后面跟的参数的hash值生成。

Checker

选择你的checker,若使用自己写的checker在files上传。
可以使用自带的一些checker,有说明。
codeforces的polygon平台使用指北_第4张图片checker的写法请看旁边的examples.
还可以在下面的checker test部分为你的spj添加几个例子测试。

Validator

每一组你上传或者生成的test都会经过validator的校验。
写法参见examples.
格式要求严格到换行和空格都要一一读入。

Tests

放输入数据的地方。输出数据由std自动生成。
(这样你就不会有std过了自己生成的数据所带来的无锅感
输入可以手动生成上传,也可以用写好的gen生成。生成需要一个脚本,语法看旁边说明即可。
样例也在这里设置。
codeforces的polygon平台使用指北_第5张图片传完记得preview test,看看有没有没过validator的。

Stresses

在线对拍
可以使用你的数据生成器来对某个程序进行长达120s的对拍。
并且可以将使得该程序与main correct solution答案不一致的数据一键add to test
似乎会在gen的参数后面随机加一个字符串
codeforces的polygon平台使用指北_第6张图片

solution files

传std的地方
当然也可以放各种暴力和水法
然后给他们标记成你期望的结果
codeforces的polygon平台使用指北_第7张图片与期望的结果不一致是过不了Verification的,
main correct solution会被用作标准解法来应付hack之类的东西.

Invocations

用test测指定的程序的地方。
相当于custom test了。
返回的结果代码有点迷,要猜一会才知道意思。
更有可能爆各种奇奇怪怪的错…

issues

别人给你issues的地方。

packages

打包的地方。可以下载题目包。

Manage access

codeforces的polygon平台使用指北_第8张图片管理权限的地方。可以多人协作造题。
(假如冲突了我也不知道会发生什么

Verification

都搞完之后点这个,看看fail了没
然后就知道哪里不对劲了
codeforces的polygon平台使用指北_第9张图片
然后你就轻松+愉快的造好题了。
开心吗

你可能感兴趣的:(codeforces的polygon平台使用指北)