Skip to content

工程结构

Tuack-NG 比赛 - 比赛日 - 题目 的三层工程结构。

比赛

这是整个工程的根目录,代表着整个比赛(比如 NOIP 2025),其下包括三个组成部分:

  • conf.json:工程的配置文件。
  • precaution.md:如果使用了渲染 PDF 功能,此文件的内容将可能被作为注意信息显示。
  • 文件夹:比赛日的文件夹,包含各个比赛日。

比赛日

这是工程的第二层级,代表着整个比赛日(比如省选的 Day1, Day2)。当然,如果只有一天,只建立一个比赛日也可以。其下包括两个组成部分:

  • conf.json:比赛日的配置文件。
  • 文件夹:题目的文件夹,包含各个题目。

题目

这是工程的第三层级,代表着比赛题(比如 NOIP 2025 的糖果店 (candy))。当然,如果只有一天,只建立一个文件夹也可以。其下可能包括多个组成部分:

  • conf.json:题目的配置文件。
  • statement.md:这道题的题面。
  • data:这道题的数据。
  • sample:这道题的样例。

以下目录均为建议做法,我们推荐您这样做。

  • tests:这道题的测试用例,包括 std。
  • gen:这道题的数据生成器。
  • chk:这道题的 Special Judge。
  • interactive:这道题的交互库和交互头文件。
  • tables:这道题使用的 Lua 表格。
  • solution:这道题的题解。

输出产物

这些产物可能因为调用的位置不同,而在不同层级的目录被创建。

  • statements:这道题/比赛日/比赛的渲染产物。
  • dump:这道题/比赛日的导出产物。

三层结构并不是唯一可行的组织结构。如果你想,可以将所有题目整合到同一个文件夹等等,但是 Tuack-NG 不保证在这些使用场景下会正常工作。