CF1767D Playoff

题目描述

有 $2^n$ 支队伍参加一场淘汰赛。比赛共进行 $2^n-1$ 场,规则如下:在第一轮比赛中,所有队伍被两两分组:第 $1$ 队对第 $2$ 队,第 $3$ 队对第 $4$ 队,以此类推(因此本轮共进行 $2^{n-1}$ 场比赛)。每场比赛的败者被淘汰,每场比赛都只淘汰一支队伍(没有平局)。此后,剩下 $2^{n-1}$ 支队伍。如果只剩下一支队伍,则该队伍成为冠军;否则,进入第二轮比赛,本轮共进行 $2^{n-2}$ 场比赛:第一场由“第 $1$ 队对第 $2$ 队”的胜者对阵“第 $3$ 队对第 $4$ 队”的胜者,第二场由“第 $5$ 队对第 $6$ 队”的胜者对阵“第 $7$ 队对第 $8$ 队”的胜者,依此类推。这个过程不断重复,直到只剩下一支队伍。 第 $i$ 支队伍的实力值为 $p_i$,其中 $p$ 是 $1,2,\ldots,2^n$ 的一个排列(即每个数恰好出现一次)。 你会得到一个长度为 $n$ 的字符串 $s$,表示每一轮比赛的胜负规则: - 如果 $s_i$ 等于 $0$,则在第 $i$ 轮(本轮有 $2^{n-i}$ 场比赛)中,每场比赛中实力较弱的队伍获胜; - 如果 $s_i$ 等于 $1$,则在第 $i$ 轮(本轮有 $2^{n-i}$ 场比赛)中,每场比赛中实力较强的队伍获胜。 如果存在一个排列 $p$,使得实力值为 $x$ 的队伍能够赢得整个比赛,则称整数 $x$ 是“获胜整数”。请找出所有获胜整数 $x$,并按升序输出。

输入格式

第一行包含一个整数 $n$($1 \le n \le 18$)。 第二行包含一个长度为 $n$ 的字符串 $s$,仅由字符 $0$ 和 $1$ 组成。

输出格式

请按升序输出所有获胜整数 $x$。

说明/提示

由 ChatGPT 4.1 翻译