工程结构
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 不保证在这些使用场景下会正常工作。