QOJ.ac

QOJ

Total points: 100 Output Only

# 10877. 人工智障

Statistics

这是一道提交答案题。

题目背景

学校的机房里,一台电脑似乎出现了问题:它的硬盘中有许多文件失效,再也读取不出来了。

作为一台使用了很长时间的机器,这种问题相当常见。然而,考虑到其中也许有着有价值的文件,你还是决定备份一下硬盘的可用部分。

就在此时,你在其中发现了一个不得了的东西:

“人工智能:全能版”

试图打开了一下,竟然是可以运行的。然而,你并不知道如何与它交互。

好在这个人工智能还特别贴心地附带了交互用例,然而其中的输入文件也打不开了。唯一可用的,只有一些输出文件。

“要是可以恢复这些输入文件,岂不是很完美。”带着这样的想法,你决定自己去完成这项看起来很难的工作。

题目描述

给定一个 AI,和一些运行结果,你需要编写输入数据,使得 AI 可以输出这些结果。

AI 的内部原理是人类无法理解的,因此只有通过输入与输出的方式才能和 AI 进行交互。

AI 的功能涉及多个方面,因此每个功能都需要测试。遗憾的是,由于丢失了使用手册,这些功能的具体内容只能由你去猜测。

目标文件与输入输出

这是一道提交答案型试题,你不需要提交你的源程序。

本题共有 10 个测试点,每个测试点有 4 个目标文件。目标文件的文件名为 X.taskY,其中 $X$ 为测试点编号,$Y$ 为 $1,4,7,10$ 中的一个。以第一个测试点为例,这 4 个文件为:1.task1, 1.task4, 1.task7, 1.task10

你需要编写 10 个文件,文件名为 1.out10.out,每一个文件对应一个测试点。

注意,接下来的“输入文件”与“输出文件”是对于 AI 而言的,而不是题目。

AI 被封装成了一个程序,以可执行文件 ai 来表示(使用方法见下文)。AI 以 X.out 为输入,输出到 X.res。你的任务,是使得 X.resX.taskY 中的一个完全一致。此时,此测试点得 $Y$ 分;否则,此测试点得 $0$ 分。

AI 的输入文件第一行是 Type i,其中 $i$ 为一个整数,表示接下来的任务需要用到哪一种功能。接下来的若干行是输入内容,其格式在不同的功能下有所不同,且意义不明。

AI 的输出文件第一行也是 Type i,其中 $i$ 与输入文件中相同。接下来的若干行是对应的输出内容。

如何使用AI

你需要使用附加文件中的 ai,并且有多种方式进行调用。当然,你可以自行修改文件名,但以下的示例表示不做修改时的情况。

首先,你需要进入终端,并通过使用 cd 命令切换到对应的目录下。

1. 在终端下输入

./ai

即可运行 AI。这种方式下,AI 会使用标准输入输出。

2. 你可以加入参数 -s,让程序从 input.txt 读入,并向 output.txt 中输出,例如:

./ai -s

3. 你可以直接加入数字 $X$,让程序从 X.out 读入,并向 X.res 输出。例如:

./ai 7

表示从 7.out 读入,并向 7.res 输出。

这里,$X$ 可以是任何非负整数,并不限于 $1$ 到 $10$。

4. 你可以加入两个参数,让程序从第一个文件名读入,向第二个文件名输出。例如:

./ai a.out a.res

表示从 a.out 输入,向 a.res 输出。

本题的所有相关文件,包括 ai 程序已经下发到了你的机器上。如果你从 OJ 上重新下载了题目目录,那么在使用下载的 ai 前,你需要运行这条命令:

chmod +x ai

如何测试你的结果

我们提供了测试程序 checker 来测试你的结果。

将测试程序与所有的 .out 文件、所有的 .taskYAI 放在同一目录下,即可运行测试程序。 测试程序会执行 ./ai 1./ai 10,因此会覆盖 X.res。在这之后,会通过屏幕输出显示每个点的得分。

样例目标文件0.taskY

Type 45
你好
世界

样例输入文件0.out

Type 45
hello
world

样例解释

AI 的第 $45$ 项功能是一个简易的词典,它会将每一行的英文单词翻译成中文。如果词语在词库中不存在,则会翻译成 [未收录]。AI 使用的所有英文都已被收录在词库中。

目标文件是中文 你好世界,因此所需的输入文件是对应的英文 helloworld

提示

请保存好目标文件 X.taskY 和编写的文件 X.out,及时备份,以防误删。

通过自行修改目标文件而获得的得分是无效的。

为了得到最高分,你只需要编写 $10$ 个文件,而不是 $40$ 个。


or upload files one by one: