洛谷 - 交互题配置教程

· · 个人记录

〇、更新日志

(Update on 2025/05/25)

一、前置知识

在浏览这篇专栏文章之前,确保你已经阅读并理解了以下内容:

二、配置方法

经测试,该方法能够实现 P1733 和 P1947 的配置。

0. 题面撰写

Grader 函数式交互题请参照 P1947,IO 数据式交互题请参照 P1733,写好一个清晰易懂没有歧义的题面。如果可以提供交互库,但无法直接置于题面中,请使用题目附件添加功能将交互库上传,方便选手测试。

1. 交互库编写

按照上述博客编写交互库和 Special Judge 程序(如果需要)。确认无误后,将交互库命名为 interactive_lib.cpp,Special Judge 程序(如果有)命名为 checker.cpp

2. 文件上传

3. 提交程序

4. 本地测试

目前只研究出了 Grader 函数式交互题(无 Special Judge)在 Windows 系统下测试的方法。 请确保你的所有文件(包括交互库,测试程序,附加头文件)在同一个目录下。

如果将交互库命名为 interactive_lib.cpp,需要测试的程序命名为 std.cpp,那么可以在同一目录下新建一个 Windows 批处理文件(即以 .bat 为后缀的文件),写入以下代码:

g++ interactive_lib.cpp std.cpp -o std.exe -std=c++14
std.exe
pause

或者直接点击下载。

保存并运行批处理文件,如果你的代码和交互库代码都没有编译错误,那么就可以直接通过标准输入输出进行交互来获得结果。方法参考了这篇博客并进行了简化。

以下用 [BalticOI 2022 Day1] Art Collections 的样例作为正常运行的实例。

文件放置(compile.bat 为批处理文件):

运行结果: