Skip to content

Commit

Permalink
style: format markdown files with remark-lint
Browse files Browse the repository at this point in the history
  • Loading branch information
24OI-bot committed Sep 30, 2019
1 parent 4546ec6 commit 18deaf3
Showing 1 changed file with 23 additions and 23 deletions.
46 changes: 23 additions & 23 deletions docs/intro/polygon.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,33 +2,33 @@

### 什么是 Polygon?

网址: <https://polygon.codeforces.com/>
网址: <https://polygon.codeforces.com/>

Polygon 是一个支持多人合作的出题平台,功能非常完善。

在 CF 出题是必须使用 Polygon 的,在其它地方出题,尤其是多人合作出题时,使用 Polygon 也是不错的选择。

### 为什么要使用 Polygon?

- 有版本管理系统,多人合作时不会乱成一团,也不需要互相传文件。
- 有版本管理系统,多人合作时不会乱成一团,也不需要互相传文件。

- 出题系统完善,validator、generator、checker、solutions 环环相扣,输出自动生成。
- 出题系统完善,validator、generator、checker、solutions 环环相扣,输出自动生成。

- 可以为 solutions 设置标签,错解 AC、正解未 AC 都会警告,可以方便地逐一卡掉错解。
- 可以为 solutions 设置标签,错解 AC、正解未 AC 都会警告,可以方便地逐一卡掉错解。

- 可以方便地对拍,拍出来的数据可以直接添加到题目数据中。
- 可以方便地对拍,拍出来的数据可以直接添加到题目数据中。

- 发现问题可以提 issue,而不会随着消息刷屏而一直没有 fix。
- 发现问题可以提 issue,而不会随着消息刷屏而一直没有 fix。

- 为日后出 CF 做准备。
- 为日后出 CF 做准备。

- ……
- ……

## 主页

基本上都是英文的字面意思,需要提醒的是,如果要出一场比赛,可以通过 "New Contest" 来创建比赛,就可以更加方便地管理题目。

题目版本 "x / y" 的 x 指当前版本,y 指 package 的版本。如果两者不一样 y 会显示为红色。
题目版本 "x/y" 的 x 指当前版本,y 指 package 的版本。如果两者不一样 y 会显示为红色。

题目最右侧的 "Start" 是指你的账号还没有看过这道题,"Continue (x) Discard" 是指你的账号处于这个题目的第 x 个版本,点击 "Start" 或 "Continue (x)" 就会进入题目管理界面,点击 "Discard" 会 **不可恢复地** 撤销你的所有更改,回到没有看过这题的状态。如果你的账号上有一道题的更改没有提交,这个框就会变红。

Expand All @@ -40,13 +40,13 @@ Polygon 的大部分功能都不需要学,能看懂英文就基本能用了。

需要特别提醒的:

- 题面不能使用 Markdown,只能用 TeX。
- 题面不能使用 Markdown,只能用 TeX。

- Invocation 是用来测试 solution 的。
- Invocation 是用来测试 solution 的。

- Stress 是用来对拍的。
- Stress 是用来对拍的。

- 数据在 Tests 中用 generator 造,generator 在 Files 中上传。
- 数据在 Tests 中用 generator 造,generator 在 Files 中上传。

### General Info

Expand All @@ -58,35 +58,35 @@ Polygon 的大部分功能都不需要学,能看懂英文就基本能用了。

这个页面是用来写题面和题解的。还可以通过 "Review" 按钮来查看题面、validator 与 checker,一般用于审核。

题面和题解都需要使用 TeX 的语法,不能使用 Markdown。例如,需要使用 `\textbf{text}` 而不是 `**text**`。但 Polygon 支持的实际上是 TeX 的一个非常小的子集,具体可以自己尝试。
题面和题解都需要使用 TeX 的语法,不能使用 Markdown。例如,需要使用 `\textbf{text}` 而不是 `**text**` 。但 Polygon 支持的实际上是 TeX 的一个非常小的子集,具体可以自己尝试。

可以通过最上方的 "In HTML" 链接查看渲染后的题面,通过 "Tutorial in HTML" 查看渲染后的题解。

如果需要在题面中添加图片,需要先在下面的 "Statement Resource Files" 中上传图片,然后在题面中加上 `\includegraphics{filename.png}`
如果需要在题面中添加图片,需要先在下面的 "Statement Resource Files" 中上传图片,然后在题面中加上 `\includegraphics{filename.png}`

### Files

"Source Files" 是用来存放 **除了 solutions 外** 的其它代码的,如 validator、checker、generator,如果是 IO 式交互题还有 interactor。

如果这些代码需要 include 其它文件,例如 [Tree-Generator](https://github.com/ouuan/Tree-Generator),需要放在 "Resource Files" 中。
如果这些代码需要 include 其它文件,例如 [Tree-Generator](https://github.com/ouuan/Tree-Generator) ,需要放在 "Resource Files" 中。

grader 式交互参见 [官方教程](https://codeforces.com/blog/entry/66916)
grader 式交互参见 [官方教程](https://codeforces.com/blog/entry/66916)

### Checker

testlib.h 提供了一些内置的 checker,在选择框中有简要介绍,也可以选择后再点 "View source" 查看源码。

如果需要自己编写 checker,请参考 [checker 教程](./testlib/checker.md)
如果需要自己编写 checker,请参考 [checker 教程](./testlib/checker.md)

下面的 "Checker tests" 是通过 "Add test" 添加若干组输出以及对应的期望评测结果,然后点击 "Run tests" 就可以测试 checker 是否正确返回了评测结果。

### Interactor

仅 IO 式交互题需要,请参考 [interactor 教程](./testlib/interactor.md)
仅 IO 式交互题需要,请参考 [interactor 教程](./testlib/interactor.md)

### Validator

validator 用来检测数据合法性,编写请参考 [validator 教程](./testlib/validator.md)
validator 用来检测数据合法性,编写请参考 [validator 教程](./testlib/validator.md)

下面的 "Validator tests" 类似于 "Checker tests",需要提供输入和期望是否合法,用来测试 validator。

Expand All @@ -98,11 +98,11 @@ validator 用来检测数据合法性,编写请参考 [validator 教程](./tes

"Testset" 就是一个测试集,如果是给 CF 出题需要手动添加 "pretests" 这个 Testset,并且 "pretests" 需要是 "tests" 的子集。

"Add Test" 是手动添加一组数据,一般用于手动输入样例或较小的数据。虽然可以通过文件上传数据,但这是 **不推荐的**,数据应该要么是手动输入的要么是使用 generator 在某个参数下生成的。
"Add Test" 是手动添加一组数据,一般用于手动输入样例或较小的数据。虽然可以通过文件上传数据,但这是 **不推荐的** ,数据应该要么是手动输入的要么是使用 generator 在某个参数下生成的。

如果勾选了 "Use in statements",这组数据就会成为样例,自动加在题面里。如果需要题面里显示的不是样例的输入输出(一般用于交互题),就可以点 "If you want to specify custom content of input or output data for statements click here",然后输入你想显示在题面中的输入输出。

Tests 页面的下方是用来输入生成数据的脚本的,如 `generator-name [params] > test-index`。可以使用 `generator-name [params] > $`,就不用手动指定测试点编号了。
Tests 页面的下方是用来输入生成数据的脚本的,如 `generator-name [params] > test-index` 。可以使用 `generator-name [params] > $` ,就不用手动指定测试点编号了。

可以参考 [Polygon 提供的教程](https://polygon.codeforces.com/docs/freemarker-manual) 使用 Freemarker 来批量生成脚本。

Expand Down Expand Up @@ -172,4 +172,4 @@ commit 时如果有不合规范、需要警告的地方会列出来。

Polygon 并没有冲突解决系统,一旦发生冲突就无法进入题目管理界面,只能撤销修改后手动重做。并且,只要修改了同一个文件,即使不是同一行也会发生冲突。

所以,使用 Polygon 时请与合作者保持沟通,commit 前保证没有其他人在修改。
所以,使用 Polygon 时请与合作者保持沟通,commit 前保证没有其他人在修改。

0 comments on commit 18deaf3

Please sign in to comment.