#P15499. [ICPC 2025 APC] Secret Lilies and Roses
[ICPC 2025 APC] Secret Lilies and Roses
说明
有 朵花从左到右排成一行,依次编号为 到 。每朵花要么是百合,要么是玫瑰。对于介于 到 之间(包含两端)的整数 ,令 表示最左边 朵花中百合的数量, 表示最右边 朵花中玫瑰的数量。
初始时,你只知道花的数量 。花的种类是隐藏的。你可以通过进行 查询 来获取花朵的信息。每次查询,你可以执行以下操作之一。
- 类型查询: 指定一个介于 到 之间(包含两端)的整数 。你将收到第 朵花的类型。
- 乘法查询: 指定一个介于 到 之间(包含两端)的整数 。你将收到 的值。
你的任务是通过有限次查询找到一个介于 到 之间(包含两端)的整数 ,使得 。你可以假设对于给定的花朵类型排列,至少存在一个这样的整数。注意,你不需要识别每一朵花的类型。
交互过程
输入的第一行包含一个整数 (),表示测试用例的数量。之后是 个测试用例,每个测试用例的格式如下。
每个测试用例的第一行包含一个整数 ()。读取该整数后,你的程序即可开始进行查询。对于每次查询,你的程序应输出一行,包含以下格式之一:
type i表示进行类型查询,其中 为指定的整数()。作为响应,输入中将有一行包含一个字符串lily或rose,表示第 朵花的类型。multi j表示进行乘法查询,其中 为指定的整数()。作为响应,输入中将有一行包含整数 的值。
对于每个测试用例,你的程序最多允许进行 次查询。这意味着类型查询和乘法查询的总次数不得超过 。如果查询次数超过 ,你将得到“答案错误”的评判结果。
当你的程序确定了某个整数 满足 时,应输出一行,格式为 answer k()。注意,提供答案不计入查询次数。
输入保证至少存在一个正确答案。如果有多个正确答案,任意一个都将被接受。
输出答案行后,你的程序应开始处理下一个测试用例。当所有 个测试用例都处理完毕后,交互结束,你的程序应当终止。
关于交互式评测的说明:
- 评测是非对抗性的,即花的类型是预先选定的,而不是根据你的查询动态调整的。
- 输出后不要忘记刷新输出缓冲区。详情请参见“评测细节”文档。
- 我们提供了一个用于本地测试的命令行工具,以及对应于示例交互的输入文件。你可以从 DOMjudge 下载这些文件。该工具顶部有注释说明其用法。
2
9
lily
rose
6
3
3
0
rose
type 8
type 1
multi 6
multi 3
answer 5
multi 3
type 3
answer 3
提示
示例交互 #1 的解释
对于第一个测试用例,九朵花的排列如下图所示。对于第三个查询,返回 ;对于第四个查询,返回 。由于 , 是一个正确答案。
:::align{center}
:::
对于第二个测试用例,假设所有三朵花都是玫瑰。
翻译由 DeepSeek 完成
京公网安备 11011102002149号