HexOJ

代码构架时代
HexOJ点亮未来

HexOJ 融入Ai,紧跟时代

Scroll

老师回复慢?AI 养成习惯?
不存在!通通不存在

AI Tutor · hydro-ai-tutor

三级提示
错误,原因,原理。

或许它能帮帮你

① 方向

引导你去查哪一类问题,不点名算法。

② 定位

指出哪段逻辑,可以给一个小反例让你手算。

③ 讲透

说清原因和改法——仍然不写代码。

提交记录 #1042 — 区间权值重构与查询
Time 128 ms · Memory 8.2 MB
for (int i=l; i<=r; ++i){ long long mx = a[i]; for (int j=i+1; j<=r; ++j) mx = max(mx, a[j]); cout << mx << '\n'; }
今日剩余 30 次
Level 1 · 方向
Level 2 · 定位
输入:1 5 3 询问:3 3 你的输出:(空) 期望输出:a[3] 把 l = r 这一种情况手算一遍, 看看内层循环进不进得去。
Level 3 · 讲透
三级已用完。改代码、重新提交一次,才会再解锁。
仅提交者本人可请求有「查看代码」权限的老师可见你问过哪几级记录:ai_tutor_hint

Boundaries

它也有不做的事。

一个愿意写清楚自己边界的 AI,比一个什么都承诺的 AI 可信。

✕ 不给代码
讲透原因,不代做不养成依赖 AI 代码的习惯
✕ 比赛进行中
比赛里它闭嘴比赛进行中的提交记录不提供提示,避免变成作弊通道。
✕ 自测记录
自测不算数只有正式评测结果才能触发助教。
✕ 不是匿名
老师看得见有「查看代码」权限的老师,能看到学生请求过哪几级提示。
✕ 有次数上限
默认每天 30 次防止拒绝服务攻击
✕ 不保证对
它也可能说错AI 不能永恒

AC 之后,它也可以点评

allowAcceptedallowInHomework

AI Author · 出题流水线

一个考点进去,一整套题出来。

STEP 01

填四件事

考点 / 主题、难度、数据组数、其他要求。入口在导航栏「AI 出题」,或题库页「添加题目」下拉里。

PERM_CREATE_PROBLEM
STEP 02

题面

Markdown 题面,自带样例输入输出,直接是题库能用的格式。

problem.md
STEP 03

标程

C++ 标准程序,作为题目附加文件保存,随时可以复查。

std.cpp
STEP 04

测试输入

由 AI 直接书写,单组控制在 4000 字符内;要大数据的题,在「其他要求」里让它用参数化输入设计。

testdata × N · ≤ 4000 chars
STEP 05

沙箱自己跑自己

标程送进 go-judge 沙箱跑出标准输出,连同 config.yaml 一起写入题库。

go-judge :5050
STEP 06

默认隐藏

生成的题不会直接见光。题面自洽、数据覆盖边界、标程正确——人看完才公开。

状态:隐藏 · 待审核

AI Author

它出的数据,
它自己先跑一遍。

插件保证的是「数据输出与标程一致」,不保证标程一定正确。所以最后一关永远是人。

AI 出题 — 任务后台执行,页面实时显示进度日志

审核清单:三件事必须人来看

题面是否自洽 · 数据是否覆盖边界 · 标程是否正确。插件只保证标程和数据对得上。

人工放行

不适合需要超大输入的题

测试输入由 AI 直接书写,单组 4000 字符封顶。要大数据,就用参数化输入把规模交给程序。

≤ 4000 字符 / 组参数化输入

模型太弱,题就弱

推荐 DeepSeek-V3 / R1、GPT-4.1、Qwen3-32B 以上;小模型出的题错误率高。maxTokens 建议 ≥ 16384。

maxTokens ≥ 16384

hydro-hexoj-theme

连站台的样式,
都是自己写的插件。

导航栏深色、六边形 logo 悬停滑出字标、背景粒子连线、点击浮字——每一项都能在「偏好设置 → 显示」里由用户自己开关,默认全开。

等级色阶来自 hydro-admin-style:lv0 灰 → 浅蓝 → 绿 → 蓝 → 橙 → 红 → lv10 黑。SU 名字紫色,徽章隐藏。

lv0lv1lv2–3 lv4–5lv6–7lv8–9 lv10SU
AK IOIrp++;AC=true;Accepted0ms 0KBwhile(1)AC;RP+=inf

站酷快乐体,随插件分发

OFL 许可,出现在「偏好设置 → Font Family」下拉里。加字体只要放文件 + 一行 @font-face。

OFLpublic/fonts/

所有效果都在一个文件里

public/hexoj/theme.js。改完不用重启,刷新页面即可。

TypeScript 90%CSS 9%

From the Site

站内真实发生过的。

AI 上了 OJ 之后,先热闹起来的不是题解区。

0提示级数上限 maxLevel
0每日次数上限 dailyLimit
0自研 Hydro 插件
0评测语言标签

取自 hydro-ai-tutor / hydro-ai-author / hydro-hexoj-theme / hydro-admin-style 与 oj.hex-c.uk 首页公开信息。

For the Admin

接口地址填 localhost,
也完全可以。

两个 AI 插件都只要求一个 OpenAI 兼容接口。llama.cpp、llama-swap、vLLM、Ollama、one-api 都能接——数据可以不出自己的机器。

控制面板 → 配置管理 · 顶层键名必须是 hydro-ai-tutor
hydro-ai-tutor:
  baseUrl: http://YOUR_LLM_HOST:8080/v1   # 到 /v1 为止
  apiKey: YOUR_API_KEY                # 不需要鉴权就留占位符
  model: YOUR_MODEL_NAME
  enableThinking: true               # Qwen3 等开启后提示质量明显更好
  maxTokens: 4096                    # 含思考过程
  timeout: 180                       # 秒
  maxLevel: 3                        # 每次提交的提示级数
  dailyLimit: 30                     # 0 为不限
  allowInHomework: true
  allowAccepted: true              # AC 后是否点评

安装三行

git clone 到 ~/.hydro/addons → hydrooj addon add → pm2 restart hydrooj。前端面板在 Hydro 启动时自动编译。

适配 Hydro v5.0.x

The Rest

AI 之外,
它还是个正经 OJ。

CC++JavaPHPPythonRust
GESPCSPNOIPNOIIOIACMAtCoderCodeforces

Ecosystem

它不孤立,
它连着整个 OI 世界。

三级用完,代码还是你的。

「但是我,我没有眼泪。宇宙,宇宙也没有眼泪呀!眼泪有什么用啊?」— HexOJ 首页 Hitokoto