编程对拍助手 autohack-next

一个高度自定义的竞技性编程 Hack 工具,由 github 用户 gi-b716(洛谷用户 GavinCQTD)使用 Python 编写,并在 github 上开源。持续更新中。

:::warning[叠甲]

本文的写作经过 autohack-next 的作者洛谷用户 GavinCQTD 同意。

以下为我与他的聊天记录截图:

:::

安装

方法 \(1\)

autohack-next 作为包发布在了 PyPI 上,使用 Python 包管理器安装即可。

具体的,如果你有 Python 且版本不小于 \(3.13\),可以使用 Python 包管理器安装 autohack-next。

Python 包管理器有很多种,这里以 pip 为例;如果你需要安装正式版 autohack-next,可以在终端输入:

python -m pip install autohack-next

如果你想要体验预发布版本,则键入:

python -m pip install -i https://test.pypi.org/simple/ autohack-next

方法 \(2\)

可以前往 github 的 Assets 条目下下载,若国内访问过慢,也可通过 <这里未来会挂一个蓝奏云链接,应该> 下载。

解压后的文件以 autohack 的可执行文件为主体。可将其放到系统环境变量下便于使用。

使用

在待对拍目录的终端中运行如下命令:

autohack

或:

python -m autohack

第一次运行时,会在当前目录生成 .autohack 文件夹并退出。

如果运行报错,请检查是否按照安装方法成功安装,如果确认可以私信作者报告问题。

在成功运行后,请查看并调整 .autohack/config.json 中设置后再次运行。

:::info[]{open}

默认设置中,source.cpp 是待检查解法,std.cpp 是保证正确的解法,generator.cpp 是数据生成器。三者都不需要使用文件输入或输出。

三个文件需要建立在同一目录下,在该目录的终端中键入 autohack 使用。

:::

注意在运行 autohack 的时候你需要保证 g++ 文件在系统环境变量中,或可以通过修改编译命令导入 g++ 路径。

如果使用其它编译器(如 clang++)只需修改 config.json 中的设置。

Checker 自定义

如果您的对拍不需要使用 Checker 可以跳过这一部分,默认值帮您解决了一切。

特殊地,有几种内置 checker。如需修改,请在 config.json 中修改。

  • builtin_basic默认值,全文比较输出与答案,忽略行末空格与文末换行。
  • builtin_always_ac:测试用,永远返回 Accepted。
  • builtin_testlib:用于支持 testlib。将使用 testlib 完成的 checker.cpp 放在 checkers 文件夹内,并在 "args" 选项中添加编译 checker.cpp 的编译选项。例如我在 args 中添加了 {"<选项 A>", "<选项 B>"},autohack-next 将用 g++ checker.cpp <选项 A> <选项 B> 来编译 checker。

后记

如果您发现了 autohack-next 的 bug 或想提出修改建议,可以报告给作者。您可以选择以下三种渠道之一:

  • 在本文评论区中评论。
  • 洛谷私信作者
  • github 上提出 issue。
posted @ 2026-03-15 22:31  Reveriean  阅读(2)  评论(0)    收藏  举报