题解:CF2038G Guess One Character

· · 题解

聪明题。

首先问一次 1,如果 1 的个数是 0 或者 n 那么我们可以直接断定这个字符串是全 0/1 的。

否则再问一次 11 的个数。用 1 的个数减去 11 的个数即可得到 1 连续段的个数。这很有用。我们再问 01 出现的次数。不难发现,一个以 0 开头的字符串 01 和 1 的连续段个数相等。以 1 开头的字符串 01 比 1 的连续段个数少一。至此我们可以猜出字符串开头的那个是什么。