QOJ.ac

QOJ

Time Limit: 1.0 s Memory Limit: 1024 MB Total points: 100 Difficulty: [show] Interactive

#8819. CNOI 知识

Statistics

这是一个交互式问题。

CNOI(全国青少年信息学奥林匹克竞赛)通常指代中国的一系列信息学竞赛。中国的选手擅长解决复杂的数据结构问题和组合计数问题。此外,学生们的兴趣和个性各异,而社区也包容这种多样性。

Wuwuwu 先生是一位匿名教师,也是 CNOI 领域的大师。他非常喜欢各种数据结构问题,并经常思考是否能从中挖掘出新的东西。今天,他正在教他的学生 Little Cyan Fish 如何解决以下问题。

图 2:黄槿,又称 pua alo alo,是夏威夷的州花。

原问题

给定一个长度为 $n$ 的字符串 $S$,由 $[1, 10^9]$ 范围内的正整数组成。你需要处理 $q$ 次询问。每次询问给定两个整数 $l$ 和 $r$,你需要计算字符串 $S[l \dots r]$ 中不同子串的数量。

这个问题大约 10 年前首次出现在中国,此后便闻名世界。然而,Wuwuwu 先生认为这个问题对于 2024 年来说太简单了,因此他提出了一个略有不同的版本:

新问题

存在一个长度为 $n$ 的字符串 $S$,由 $[1, 10^9]$ 范围内的正整数组成。你最多可以进行 $10^4$ 次以下询问:

  • ? l r:询问字符串 $S[l \dots r]$ 中不同子串的数量($1 \le l \le r \le n$)。

你的任务是通过这些询问恢复原始字符串 $S$。如果存在多个可能的字符串,你可以输出其中任意一个。特别地,当且仅当对于所有 $1 \le l \le r \le n$,字符串 $T[l \dots r]$ 中不同子串的数量与字符串 $S[l \dots r]$ 中不同子串的数量相等时,字符串 $T$ 被视为正确答案。

你能向 Wuwuwu 先生证明你能解决这个新问题吗?

交互

输入的第一行包含一个整数 $n$($2 \le n \le 10^3$)。

随后交互开始。在交互过程中,你最多可以进行 $10^4$ 次询问。要进行一次询问,你需要打印一行 ? l r($1 \le l \le r \le n$),表示一次询问。然后,你需要从标准输入读取询问的结果。

要给出你的答案,你需要打印 ! s1 s2 ... sn($1 \le s_i \le 10^9$)。如果存在多个可能的答案,你可以输出其中任意一个。打印答案不被视为询问,且不计入 $10^4$ 次询问的限制。打印答案后,你需要立即终止程序。

在打印询问后,不要忘记输出换行并刷新缓冲区。为此,请在 C++ 中使用 fflush(stdout)cout.flush(),在 Java 中使用 System.out.flush(),在 Pascal 中使用 flush(output),或在 Python 中使用 stdout.flush()

在本题中,保证交互器是非自适应的。也就是说,字符串 $s$ 在交互过程开始前就已经确定,不会根据你的询问而改变。

样例

输入格式 1

12
1
3
72
25
19

输出格式 1

? 1 1
? 1 2
? 1 12
? 6 12
? 5 10
! 6 12 15 23 5 18 12 5 20 20 5 18

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.