当前位置: 首页 > news >正文

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-4
rcmp6.cpp一个或多个 double,最大允许误差 1E-6
rcmp9.cpp一个或多个 double,最大允许误差 1E-9
wcmp.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

http://www.gsyq.cn/news/1580703.html

相关文章:

  • Vibe Coding实战:Vue3管理后台的AI协同开发流
  • 从Web命令注入到Linux SUID提权:一次完整的渗透测试实战解析
  • 【VibeCoding系列教程16】 我的AI工具箱
  • Crawler之Tool:Scrapling的简介、安装和使用方法、案例应用之详细攻略
  • 海量数据如何解决?位图和布隆过滤器来帮你
  • Qwen3.7-Max原生智能体:从问答模型到自动干活的Agent跃迁
  • Ubuntu 18.04 安装 Anaconda 兼容性问题与修复方案
  • Go context.Context 原理与工程实践:控制流统一管理指南
  • Ubuntu 20.04 + MySQL 8.0 构建三节点MGR高可用集群实战
  • 银河麒麟V10安装Wireshark:权限配置与抓包实战指南
  • 2026年外贸独立站建站全攻略:从SEO到GEO,你的网站正在被AI“面试”
  • 嵌入式测试第 40 天:智能手表/手环嵌入式测试拆解
  • 1023. 【USACO题库】2.1.4 Healthy Holsteins健康的好斯坦奶牛
  • React对接DigitalOcean API:从零搭建前端数据流水线
  • 后端开发必看!6种服务端主动推送方案的实战对比
  • 深度解析:抖店行业资质与商品创建合规体系及实操准则
  • AI Agent核心原理与工程落地五模块详解
  • App Platform自定义域名、SSL与CDN配置原理与实战
  • Wireshark网络协议分析实战:从抓包入门到故障排查精要
  • Ubuntu 20.04 LEMP部署实战:Nginx+PHP7.4+MySQL8.0完整配置
  • 三步构建AI API使用数据自动化分析流水线:从账单到洞察
  • MC68010循环模式:硬件级指令优化与嵌入式性能提升
  • 2024年AIGC商业落地指南:从多模态大模型到实战应用
  • XSS攻击脚本全解析:从原理到实战绕过技巧与防御指南
  • MCU低功耗设计:SIM_SD寄存器精准控制外设时钟与唤醒机制
  • Postman自动化CSRF Token认证:环境变量与脚本实战指南
  • 跨越LLM产品评估可操作性差距:从数据到行动的系统方法
  • 零样本学习在软件工程情感分析中的创新应用
  • GLM-5.1代码能力跃迁:从SWE-Bench Pro登顶看大模型工程化落地
  • SRC漏洞挖掘入门指南:从零到一掌握白帽子实战技能