牛客 ACM/ICPC 比赛现在支持导出 ICPC Tools Resolver 可用的滚榜数据文件。导出的文件是 .ndjson 格式,兼容 ICPC Contest API / DOMjudge event feed 口径,可配合官方 ICPC Tools Resolver 做赛后滚榜展示。
官方工具地址:ICPC Tools Resolver
官方文档:Resolver PDF
一、使用前准备
请先确认:
- 比赛排名类型是 ICPC。
- 比赛已经结束。
- 所有提交都已经判题完成。
- 比赛已设置封榜时间,否则滚榜没有“揭榜”过程,只会接近直接展示终榜。
- 本机已安装 Java 17 或更高版本。
ICPC Tools 2.6 以后最低要求 Java 17。可以在命令行执行:
java -version
如果版本低于 17,或提示找不到 java,请先安装 Java 环境。
二、下载 ICPC Tools Resolver
打开官方页面,下载压缩包,并解压。
注意:运行此工具需要java环境,请安装 Java 17 或更高版本,ICPC Tools 2.6 以后低版本 Java 无法启动。
官方工具地址:ICPC Tools Resolver
官方文档:Resolver PDF
三、从牛客导出滚榜文件
比赛管理员访问:
https://ac.nowcoder.com/admin/acm/resolver-event-feed?id=比赛ID
例如:
https://ac.nowcoder.com/admin/acm/resolver-event-feed?id=12345
浏览器会下载一个文件,文件名类似:
牛客小白月赛132_resolver_2026-05-09_17_26_40.ndjson
导出规则说明:
- 只支持 ICPC 排名类型比赛。
- CE 提交不会计入滚榜事件。
- 未报名但有提交的用户不会导出,和榜单口径保持一致。
- 如果还有排队、编译中、运行中、判题中、等待系统测试等未完成提交,系统会阻止导出,避免生成不可信滚榜文件。
四、测试滚榜环境
如果不需要配置logo等,可以直接把滚榜文件放在滚榜工具同目录下,
使用命令
java -Xmx1024m -cp ".\lib\*" org.icpc.tools.resolver.Resolver "ndjson文件.ndjson" --speed 0.7
注意,把这里的文件名改成你的比赛的文件名,比如我的文件名是:2026年中南民族大学程序设计竞赛初赛(同步赛)_resolver_2026-05-12_15_25_30.ndjson 则我的命令是
java -Xmx1024m -cp ".\lib\*" org.icpc.tools.resolver.Resolver "2026年中南民族大学程序设计竞赛初赛(同步赛)_resolver_2026-05-12_15_25_30.ndjson" --speed 0.7
等待几秒后弹出全屏滚榜页面:
常用控制键:
- 空格 /
f:前进一步 r/b:后退一步0:回到开始2:快速前进一步+/-:调整速度Ctrl + Q:退出
目前中文字体展示有问题,我们来配一下滚榜工具字体的环境变量
我这里配置的是等线字体,新增环境变量:
变量名:ICPC_FONT
变量值:DengXian
重启测试,可正常展示字体
如果需要配置logo,则需要创建一个文件夹,我这里命名为cdp_local。
然后需要把刚刚的滚榜文件重命名为event-feed.ndjson。
校徽需要创建一个名为organizations的文件夹,然后在里面放对应的logo.png
文件夹名要和 ndjson 里的 organization_id / organizations.data.id 对上,现在导出的学校id就是学校名,则文件夹名也可以用学校名。
cdp_local/
event-feed.ndjson
organizations/
哈尔滨理工大学/
logo.png
江西师范大学/
logo.png
启动命令改为文件夹启动
java -Xmx1024m -cp ".\lib\*" org.icpc.tools.resolver.Resolver cdp_local --speed 0.7
如果要加队伍照片,则类似(目前导出的队伍id用的是牛客id/团队id:
cdp_local/
teams/
911530930/
photo.png
这里只是举个例子,更多配置可以参考ICPC滚榜工具的官方文档。
五、配置奖项
进入 Resolver 解压目录,双击:
awards.bat
选择我们的ndjson文件,根据需要进行配置,完成后保存替换掉原有的ndjson文件
六、推荐流程
正式滚榜前建议至少做两次演练:
- 比赛开始前,找一场测试比赛或历史比赛,完整走一遍“导出 ndjson、配置奖项、启动滚榜”的流程,提前确认 Java 环境、字体、logo、投屏和 ICPC Tools 都能正常工作。
- 比赛结束后,等待所有提交判题完成,再导出正式
.ndjson文件。 - 用
awards.bat配置奖项。 - 本地完整跑一遍滚榜工具,检查滚榜能否正常启动和推进。
- 核对榜单排名、题目数量、队伍数量、首杀、奖项和 logo 展示是否符合预期。
- 确认无误后,再连接大屏或投影进行正式展示。

全部评论
(0) 回帖