polygon出题教程
Polygon 是一个支持多人协作的出题平台功能非常完善。官网描述为Polygon 的使命是为创建编程竞赛题目提供平台。在 Codeforces (CF) 出题必须使用 Polygon。在其它地方出题尤其是多人合作出题时使用 Polygon 也是不错的选择。2.创建题目进入polygon首页点击“New Problem”。进入创建题目界面自定义题目的名称要求只能使用小写的单词用破折号分隔。随后进入题目列表点“start”进入题目编辑。3.题目信息维护3.1 题目基础信息维护上方可以对题目的基础信息进行维护包括输入输出文件、时间限制、空间限制、交互题。选项含义Input file:输入文件名或输入“stdin”以使用标准输入Output file:输出文件名或“stdout”表示标准输出Time limit:每测试点的时间限制限制250毫秒到15000毫秒之间Memory limit:内存限制限制4 MB 和 1024 MB 之间Interactive:是否是交互题下方“Tags” 可用来维护题目的知识点但需要使用英文。polygon出题一定需要配置知识点。3.2 配置题面中文首先进入“Files”选项内替换“olymp.sty”、“problem.tex”和“statements.ftl”的源码为支持中文的源码可见项目GitHub - LMTINSUZHOU/polygon-chinese-latex-file: A file for use codeforces polygon by chinese · GitHub点击文件的“Edit”编辑文件替换完成后点击“Save”保存注意保存需要等待左下角出现绿色的“File problem.tex has been saved”出现才能返回。随后进入“statement”选项“Language”选择“Chinese”并点击“Create”。随后进入如下页面即可编辑题目选项含义Name:题目名称Legend:题面Input format:输入说明Output format:输出说明Notes:提示书写时须使用latex语法可参考polygon的官方手册或第三方手册注意Polygon的样例不在此处输入而是取测试点的处设置的样例。如需插入图片可在下方“Statement Resource Files”中上传并调用。编辑完成后可以点击右上角的“In HTML”或“In PDF”查看建议查看“In PDF”以保证无误。4.Checker的配置checker是用来判断题面是否通过的检查器使用testlib.h编写。编写可以参考CF官方说明、oi-wiki、cnblog、luogu等其有被称为spj程序。自定义checker可以点击“New file”并输入checker.cpp作为检查器源文件名称可以自定义但是这样写清楚随后点击“Create file”来粘贴你的checker并保存。自定义checker需要给checker准备测试样例检查checker的准确性。在“Checker tests“中点击”Add Test“添加随后点击“Run tests”运行检查。这些是polygon自带的checker可以满足一般的需求。文件名说明fcmp.cpp按行比较不忽略空白字符hcmp.cpp单个超大整数lcmp.cpp按行比较忽略空白字符ncmp.cpp一个或多个 int64忽略空白字符nyesno.cpp零个或多个 yes/no大小写不敏感rcmp4.cpp一个或多个 double最大允许误差 1E-4rcmp6.cpp一个或多个 double最大允许误差 1E-6rcmp9.cpp一个或多个 double最大允许误差 1E-9wcmp.cpptoken 序列比较yesno.cpp单个 yes 或 no大小写不敏感5.Validator校验器的配置Validator 用于检验造好的数据的合法性。当造好一道题的数据又担心数据不合法时出题者通常会借助 validator 来检查。编写可以参考CF官方说明、oi-wiki、luogu等。文件上传可以参考checker.cpp的文件创建。自定义Validator需要给Validator准备测试样例检查Validator的准确性。在“Validatortests“中点击”Add Test“添加随后点击“Run tests”运行检查。6.测试点的配置polygon的样例输入是可以自己配置的但是答案是有标程生成的。配置样例我们首先需要点击“Solution files”点击“Add file”上传标程或者“New file”创建文件。随后点击“Tests”进入测试点的配置。首先我们可以点击“Add Test”添加自己书写的测试点注意测试点需要满足输入检查的要求。其中“Use in statements”配置可以将测试点配置为样例。除了这个方式我们还可以以使用数据生成器教程可以参考[Polygon从入门到入门](Polygon从入门到入门 - Frost_Ice - 博客园)、luogu等。如果需要使用数据生成器需要在“Files”选项中的“Source Files”中上传“gen.cpp”。随后按照polygon的要求书写生成脚本点击“Save Script”即可保存并生成测试点点击“Preview“可以查看输出。7.打包随后确保右上方的栏目内无黄色异常可前往“Packges”选项创建包。在此之前前往右下角点击“Commit Changes”上传修改。完成后可以回到“Packges”点击“Full”生成所有的数据包。系统会自动校验并使用你书写的cheker、validator、Test脚本来生成数据。随后会生成三个包Standard包中仅包含脚本文件无测试点Windows包中包含脚本文件和测试点以wi