Hacks.zh CN - houyhlouis/LLMOJ GitHub Wiki
导航栏的 Hack 位于评测记录之后;首页 Top Users 右上方的 查看全部 按钮跳转到成员页。这里仅显示 Hack 结果,沿用评测记录列表的筛选栏、表格和分页布局;没有记录时保留空表格。列包含状态、目标提交编号、题目、提交者、Hacker、运行时间、运行内存和 Hack 时间。支持按题目 ID、Hacker 用户名、目标提交编号和状态筛选,我的 Hack 按当前账号筛选。比赛内也有 Hack 记录页。
“管理题目 STD”页面的“返回”和“提交”按钮位于标题右侧,与题目编辑页面保持一致。
点击 Hack 的状态或 Hack 时间,会在居中的固定大小小浏览器里载入原来的详情链接,具体尺寸和行为见评测记录预览。唯一的 Hack 测试点始终展开,包含允许查看的输入、判定、运行时间、内存及有权限时的重新评测操作。详情状态沿用列表中的文字颜色,不显示带底色的状态框。点击目标提交编号,则载入原来的普通提交或比赛提交。列表的筛选、比赛上下文、页码和滚动位置都会保留,同一时间只打开一个预览窗口。
点击 ×、按 Escape 或点击窗口外部可以关闭预览;原页面在内部滚动,外围窗口大小保持固定。点击标题中的 #编号,可以进入正常的完整详情链接。组合键单击、中键单击和复制链接仍使用浏览器的常规行为。小浏览器显示完整原页面,只隐藏站点顶部导航。正在评测的 Hack 保持原有自动更新,移除内部页面后停止更新;原有 Hack 与比赛访问权限同样生效。
在传统题的题目管理菜单点击 STD / Hack 参考程序,打开 /p/id/<题目ID>/hack-reference。使用与提交页面相同的代码编辑器输入可信的 STD,选择语言和编译选项,再保存。STD 用于生成 Hack 输入的正确答案;SPJ、时间和内存限制沿用题目正式评测配置。
STD 默认使用标准输入输出,与目标提交的文件输入输出独立。如果 STD 通过文件读写,请开启 STD 使用文件输入输出,填写与代码一致的输入、输出文件名。两个文件名必须不同,只允许字母、数字、空格、下划线、横线和点,且各最多 255 个 UTF-8 字节;不能填写路径、以 .. 开头的名称、. 或保留名称 hack-stderr。目标提交仍使用普通题目的文件设置,或者提交时保存的比赛文件名。
也可以打开这道题的一个已 Accepted、已结束且有源码查看权限的提交,点击 设为此题 STD 并确认。系统复制其源码、语言、编译选项和适用的文件设置:比赛提交使用提交时记录的比赛文件名,普通提交使用题目正式评测设置。保存来源编号供管理者查看;普通 Hacker 无需输入参考提交编号。来源提交不能作为 Hack 目标。后来重评或修改来源记录不会自动修改已保存的 STD。
正式数据已绑定输入校验器时,管理页面会自动载入同版本的校验器;也会尝试使用测试数据区的 validator.cpp。没有可复用校验器时,在 STD 页面展开 输入校验器,用代码编辑器填写。校验器从标准输入读取数据,合法输入返回退出码 0,非法输入返回非零值。C++ 校验器可使用内置 testlib。STD 和校验器源码各最多 1 MiB。
只有拥有题目管理授权和适用 Hack 配置授权的用户能管理 STD。ManageHack 显式拒绝会覆盖题目管理权限提供的兼容授权。已部署旧版的参考提交配置仍可读取;保存 STD 后改为独立的代码副本。没有单独保存文件设置的旧 STD 会沿用来源提交适用的设置;来源不存在时沿用题目正式设置。升级前已排队的 Hack 保留原始快照的文件设置。新 Hack 分别保存 STD 与目标提交的文件设置,修改可信 STD 或其文件设置会取消配置已不匹配的任务。
Hack 入口只出现在具体的提交详情页,不会在评测列表或 Hack 结果页提供发起入口。普通题库和比赛的传统代码题提交均受支持。
- 打开目标提交详情,点击 Hack。
- 上传 UTF-8 输入文件或粘贴一组完整输入,最多 1 MiB。
- 点击 提交 Hack,打开新记录查看结果。
弹窗只用于提交输入;可信 STD 和校验器由管理者提前配置。目标须评测完成、能运行、未被取消或 Fake/Hacked 作废,并满足题目、团队和比赛访问权限。
系统先校验输入合法性,运行 STD 得到正确答案,再用正式 checker / SPJ 评测目标。非法输入、STD/配置错误、系统错误与 Hack 失败分别显示;仅有效反例产生 Hack 成功。每个账号同时最多 3 条进行中的记录,每小时最多发起 30 次。
详情页沿用提交评测详情的样式,始终展开 测试点 #1,显示已记录的目标实际判定与得分,以及运行时间、运行内存、输入和安全的评测信息;点击输入文件名可下载完整输入。这里不包含目标原提交的其他测试点或私有 STD 输出、SPJ 诊断。非法输入和准备失败时,目标未执行的记录显示 未运行。旧记录没有目标判定时仍显示原 Hack 结果,并注明 未记录目标判定,不会推测 WA 等结果。输入和评测信息仍遵守比赛隐藏信息规则。
成功后保留目标提交的编号、源码和原始评测证据,有效状态改为 Hacked、有效得分为 0,更新题库统计与比赛榜单。重复回调不会重复处理。
成功 Hack 保留为历史记录,不能通过重测 Hack 撤销。管理员恢复目标提交需具有重评权限和对应的 Hack 管理授权,对原提交重新评测;其他失败或错误的 Hack 可由管理者重测。
比赛默认关闭 Hack。管理员可开启并设置开放区间;没有填写开始时间时默认赛后开放。NOI/OI 和严格 IOI 的选手只能赛后发起 Hack,避免泄漏隐藏成绩。开启 Hack 不会赋予他人源码查看权限。
权限管理提供 查看 Hack 记录、提交 Hack 数据、配置与重测 Hack。团队资源仍独立检查成员与资源访问权限。输入和消息也遵守比赛隐藏信息规则。
Self Eval 是可选的 NOI/OI 比赛预测试功能,不在普通提交页面提供。社区升级说明 介绍数据库和评测机兼容检查。