目录
目录README.md

SAMPLE

该项目用于简单介绍”清华推研机试复刻组“接下来将要使用的工作流。由于之后的工作预计将不再只有我一人进行,所以有必要构建一个相对规范的工作流和运作模式。

0.题目版权相关

0.1 题目版权声明

我们本质上在进行的工作并非题目的命制,而是对已有题目的翻版。我们承认所有清华推研机试题目的原始题面、idea、评测数据的版权均属于清华大学计算机系或清华大学深圳国际研究生院,以及授权给上述院系使用的命题组(绝大多数题目来自清华算协,极少数题目来自清华校内独立的第三方)。对于原始命题人未授权开源数据的题目,我们也将不会使用题目的原始配置,只进行数据的翻版重制(目前已经由命题组授权开源的 4 套题目可以在 github 清华大学计算机系课程攻略 查看)。

因此在“水木清研”付费项目“机试训练营”运营期间,对于全部的题目,我们的题目评测本身均对公众免费开放。盈利内容仅包括题目的详细解析以及标程。转为“清华推研机试复刻组”之后,我们将脱离原有的半盈利性质,变为免费开源组织。我们目前希望通过公众的打赏或捐赠来向未来的组织成员提供劳务费用。

我们将从 2025 年 5 月开始,将推研机试复刻的仓库逐步进行公开,公开的延迟时间期限初步定为 3 年(例:如果当前时间为 2025 年,则 2023 年至 2025 年的推研机试复刻仓库不对外公开)。非公开的仓库目前计划只提供给清华校内有需求的团体组织使用。如果确有相关需求,请与我们进行联系。

0.2 题目使用协议

基本上类似于清华算协开源仓库的使用规定,但是略有区别。

  1. 任何单位或个人都可以免费使用或转载本仓库的题目;
  2. 任何单位或个人在使用本仓库题目时,应做到无偿、公开,严禁使用这些题目盈利或给这些题目添加特殊权限;
  3. 如果条件允许,请在使用本仓库题目时同时提供数据、标程等资源的获取方法;否则,请附上对应仓库地址。
  4. 除个人的非公开使用外,任何单位或个人在使用或转载时需准确标注以下信息:
    • 题目原始版权:题目原始版权归清华大学计算机系以及清华大学学生算法协会所有
    • (如果题目为考研调剂,则将院系修改为“清华大学深圳国际研究生院”,如果命题人为其他独立第三方则需要对应修改)
    • 若题目数据为官方数据,则无需额外进行标注;否则需要标注:本套题目的复刻数据出自清华推研机试复刻组

此外,由于我们的评测会以个人公开题目的形式在洛谷上架,所以个人训练可以直接使用我们提供的评测链接,无需进行搬运。

1.项目工作流介绍

基本上参考清华算协的组题项目模式,但是由于我们的题目并不需要生成 PDF 版题面并且部署到 TUOJ 上(现阶段只需要考虑部署在洛谷上),所以并不需要完全遵循 tuack 的工程规范。下面会进行一些简单介绍,可以结合 SAMPLE 项目的各文件夹与文件进行查看。

SAMPLE 项目提供的样题并非出自清华推研,但是同样包含清华推研机试复刻组成员命制的原创题,以及其他比赛当中使用的题目。如果你想使用这些题目,同样需要遵循上述题目使用协议。

1.1 项目名称

类似一般的竞赛当中,将竞赛英文缩写放在前面,年份日期放在后面(如 CSP202412,THUPC2025)这样的,我们在新建项目时对英文缩写有以下规定:

  • 考研机试,属于春季推研,命名为 THUPEES
  • 预推免机试,属于秋季推研,命名为 THUPEEA
  • 夏令营机试,命名为 THUSCS(请注意,此处的夏令营指代“全国优秀大学生夏令营”,而非“大中衔接夏季研讨与教学活动”)
  • 留学生推研机试,暂时没有题目收录,名字目前也没想好怎么起

例:2024年考研机试,项目命名为 THUPEES2024 。

每一场机试分为试机和正式上机。多场机试的试机题目重复,无需重复收录,只需要收录到已知最早出现的项目中即可。

而考研分为一志愿和调剂、预推免分为校内和校外,共计两场机试,为了后续收录方便(避免项目名称后面带上 -1/-2 然后混淆了),我们将在统一收录在同一项目中。其中试机放在文件夹 day0 ,考研一志愿/预推免校内/夏令营正式放在 day1 ,考研调剂/预推免校外放在 day2 。每一个子文件夹内部单独放置一个 readme.md 进行题目介绍以及题目使用协议。

1.2 子文件夹

每个文件夹内部分多道题目,按照 A,B,C,D,E 的英文字母顺序进行编号排列。

以下为一些特殊情况(以 E 题举例):

  • 如果对应题目可以出数据加强版(与原始题目提供的 std 有明显不同),则新开一个文件夹,命名为 E-enhance
  • 如果在初始复刻时是基于回忆度较低的题面原型进行复刻,而之后获取到了完整题面,则两者都保留,将原本的题目重命名为 E-unofficial。并在洛谷部署评测链接题面中提供指向新复刻评测的链接。

每道题目文件夹的 README.md 包括以下内容:

  • 标注题目的建议难度,分为知识点难度(Concept Difficulty)和实现难度(Implementation Difficulty),其中知识点难度建议参照洛谷的难度评级(如果有必要进一步细化,则可以参照萌熊OJ的难度评级),实现难度直接按照 leetcode 分 easy/medium/hard 即可(存在一定的主观性,但是能够直观地传递给用户即可)。
  • 标注题目所涉及的知识点 tag,可以参照各 OJ 的知识点标签。
  • 对应地,在洛谷进行题目部署时,无需标注知识点 tag 和难度评级(此处我们沿用“水木清研”运营期间的传统,主要是为了让用户可以在不知晓题目难度和知识点的情况下自主进行完整套卷的练习)。
  • 标注题目相关的 credit,如果是官方数据则无需标注。如果不是则可以标注本题的复刻数据制作者以及主要的验题人的id。

每道题目分为以下子文件夹:

  • data:用于存放评测数据。存放时空限制/子任务归属/分值的 config.yml 以及用于 Special Judgechecker.cpp 也放在这里。
  • pre:用于存放样例。针对部分题目,也可以将样例数据复制一份放在 data 当中,作为分值为 0 分的额外子任务共同参与评测。
  • resources:用于存放题面/题解等文档可能会用到的图片等附加资源。在洛谷部署时,同样可以使用 gitlink 自带的图床功能。
  • statement:用于存放题面。在洛谷部署时可以使用洛谷/gitlink等图床功能,但是在项目中请使用项目内的相对文件路径展示图片。
  • solution:用于存放思路题解的文字解析。
  • 其他以用户姓名/网络id作为名称的文件夹:用于存放数据复刻人/验题人的标程代码或各部分子任务的代码,以及数据复刻人生成数据时使用的代码。如果是使用完整的工具链进行生成,则需要提供工具链名称,以及命令行形式的数据生成日志。
  • prototype:对于回忆完整度较低的题目,我们需要附上复刻时的题面原型。
关于

推研机试复刻的工作流介绍,包含项目命名、题目分类、文件存储等内容。

34.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号