Repository navigation
Hacks.zh CN
Hack 是用自己构造的输入挑战一份提交:系统运行题目的可信程序(STD)得到正确答案,再用它检验这份提交。提交出错即 Hack 成功,该提交的成绩作废。
顶部导航的 Hack 页面列出 Hack 结果,筛选栏、表格和分页与“评测记录”相同:可按题目 ID、Hacker、目标提交编号或状态筛选,或点击 我的 Hack。每条记录显示状态、目标提交、题目、提交者、Hacker、运行时间、内存和时间。没有记录时显示 暂无 Hack(筛选后显示 找不到符合条件的 Hack)。比赛内也有 Hack 页。
点击记录的状态或时间会在预览窗口中打开 Hack 详情,点击目标提交则打开该提交,详见提交记录预览。列表的筛选、页码和滚动位置保持不变。
题目需要先有可信的 STD。题目管理者在传统题页面侧栏点击 标准代码 / STD(/p/id/<题目ID>/hack-reference),在代码编辑器中填写 STD,选择语言和编译选项后保存。STD 为每个 Hack 输入生成正确答案;校验器(SPJ)和时间、内存限制沿用题目自己的设置。
STD 默认从标准输入读入、向标准输出写出,与题目是否使用文件输入输出无关。若 STD 用文件读写,请开启 STD 使用文件输入输出 并填写两个文件名:两者不能相同,只能包含字母、数字、空格、下划线、短横线和点,各不超过 255 字节;不能是路径、以 .. 开头、. 或 hack-stderr。被 Hack 的提交仍使用它评测时的文件设置。
也可以直接采用一份已通过的提交:打开本题一份已结束、已通过且你有权查看代码的提交,点击 设为此题 STD 并确认。系统会复制它的代码、语言、编译选项和文件设置,并向管理者显示其编号作为来源。这份提交本身不能被 Hack,之后它的变化也不会影响已保存的 STD。
Hack 输入在运行前要经过校验器检查。题目测试数据中已有校验器时(包括测试数据里的 validator.cpp)会直接使用;否则请展开 输入校验器 填写。校验器从标准输入读入数据,合法时以 0 退出,不合法时以非零值退出;C++ 校验器可以使用内置的 testlib。STD 和校验器的代码各不超过 1 MiB。
只有能管理题目及其 Hack 的用户可以修改这些设置;显式拒绝 ManageHack 优先于题目管理权限。修改 STD 或其文件设置后,与之不再匹配的排队中的 Hack 会被取消。
Hack 只能从提交详情页发起,支持传统题的普通提交和比赛提交。
- 打开要 Hack 的提交,点击 Hack。
- 上传 UTF-8 编码的输入文件或直接粘贴输入,不超过 1 MiB。
- 点击 提交 Hack,然后打开新记录查看结果。
被 Hack 的提交必须已评测结束、成功编译并运行过,且不是已取消、Fake 或已被 Hack 的状态;你还需要能访问它所在的题目、团队和比赛。每个账号最多同时进行 3 个 Hack,每小时最多发起 30 个。
系统先校验输入是否合法,再运行 STD 得到正确答案,然后用题目的校验器评测这份提交。只有合法且让提交出错的输入才算 Hack 成功;输入不合法、STD 或配置有问题、系统错误会分别显示。
记录详情只有一个 测试点 #1,样式与提交的评测详情相同:显示该提交在你的输入上的判定和得分、运行时间、内存、输入(点击文件名可下载完整输入)以及评测信息。不会显示这份提交的其他测试点、STD 的输出或校验器的内部信息。提交没有运行时(例如输入不合法)显示 未运行。比赛中隐藏信息的规则同样适用。
被 Hack 的提交保留编号、代码和原评测详情,但状态变为 Hacked、成绩变为 0,题目统计和比赛排名随之更新。
成功的 Hack 会一直保留,重测这条 Hack 也不会撤销它。要恢复那份提交,需要由有重测和 Hack 管理权限的用户重测该提交。失败或出错的 Hack 可由管理者重试。
比赛默认不开放 Hack。比赛管理者可以开启,并设置开放与结束时间;默认在比赛结束时开放。NOI / OI 和严格 IOI 比赛的选手只能在赛后 Hack,以免泄露隐藏的成绩。开启 Hack 并不会让人看到其他选手的代码。
相关权限为 查看 Hack 记录、发起 Hack 和 管理全部 Hack 与参考程序、校验器。团队资源仍需要团队成员身份和访问权限。
简体中文
- LLMOJ Wiki
- AI 环境与固定限制
- AI
- 键盘与读屏软件
- 后端配置
- 容量
- 功能升级与数据库修改
- 配置总览
- 比赛赛制
- 分布式评测
- Docker 源
- 环境变量与维护脚本
- 前端配置
- HTTPS 与反向代理
- Hack
- 安装与端口配置
- 评测配置与扩缩容
- 安装后运维
- 发布源码与 Wiki
- 新用户注册审核
- 远程评测机
- NOI / OI 比赛自测(Self Eval)
- 题解
- Fake 处罚
- 提交记录
- 团队
- 两步验证
- 升级
English
- LLMOJ Wiki
- AI
- AI environment and fixed limits
- Keyboard and screen readers
- Backend configuration
- Capacity
- Feature upgrades and database changes
- Configuration overview
- Contest rules
- Distributed judging
- Docker sources
- Environment variables and maintenance scripts
- Frontend configuration
- HTTPS and reverse proxies
- Hacks
- Installation and ports
- Judge configuration and resizing
- Operations
- Publishing source and the wiki
- Registration approval
- Remote judges
- Self Eval in NOI / OI contests
- Solutions
- Fake moderation
- Submissions
- Teams
- Two-factor sign-in
- Upgrading