luogu#P12202. [COI 2022] 回文子串 / Madioničar
[COI 2022] 回文子串 / Madioničar
题目背景
译自 HIO (COI) 2022 T1。
题目描述
这是一道交互题。本题中,交互库是非自适应的。
魔术师 Malnar 需要确定志愿者想象的单词的最长回文子串长度。单词由 个小写字母组成,你需要通过以下交互过程推断出最长回文子串的长度 :
-
提问:输出
? l r
,询问区间 的子串是否是回文,程序会返回 (是回文)或 (不是回文),最多允许提问 次。 -
回答:确定最长回文子串长度 后,输出
! L
并结束程序。
交互规则
- 所有输出后需立即刷新缓冲区(例如 Python 使用
flush=True
)。 - 输入中的 表示单词长度,所有区间 需满足 。
输入格式
输入仅在第一行包含一个整数 ,表示单词长度,后续交互通过提问和回答进行(详见样例)。
输出格式
- 每行提问格式为
? l r
。 - 最终答案格式为
! L
。
提示
输入输出样例
交互过程:
程序输出 | 输入(程序回答) | 说明 |
---|---|---|
? 1 1 |
1 |
询问单字符子串 n 是否是回文(是)。 |
? 2 3 |
0 |
询问子串 ev 是否是回文(否)。 |
? 2 4 |
1 |
询问子串 eve 是否是回文(是)。 |
? 3 5 |
0 |
询问子串 ven 是否是回文(否)。 |
? 1 5 |
1 |
询问整个单词 neven 是否是回文(是)。 |
! 5 |
确定最长回文子串长度为 5。 |
样例解释:
志愿者想象的单词为 neven,其最长回文子串为整个字符串,长度为 。
数据规模与约定
对于所有数据,满足 。
子任务及分值:
子任务 | 分值 | 限制条件 |
---|---|---|
,单词仅由 a 和 b 组成 |
||
,无额外限制 |
提示
- 回文的定义为正读和反读相同的字符串。