P17135 [KOI 2026 #1] 剪刀石头布
题目描述
编号为 $1$ 到 $N$ 的 $N$ 个人排成一列。对于每个整数 $i$($1 \le i \le N$),第 $i$ 个人站在从左向右数第 $i$ 个位置,并持有一张卡片 $A_i$。每张卡片均为剪刀(S)、石头(R)、布(P)中的一种。
如果两个不同的人之间没有其他人,则称这两个人相邻。你可以选择相邻的两个人,让他们进行对决。每次对决按照以下方式进行:
- 如果两个人持有的卡片不同,则按照剪刀石头布的规则决定胜者。具体而言,石头(R)战胜剪刀(S),剪刀(S)战胜布(P),布(P)战胜石头(R)。
- 如果两个人持有的卡片相同,则可以由你任意指定其中一人为胜者。
败者将离场,胜者则保留自己原有的卡片,并留在原来的位置上。有人离场后,可能会有原本不相邻的两个人变得相邻,而他们之后也可以进行对决。
你需要恰好进行 $N-1$ 次对决,使得最后只剩下一名获胜者。请编写一个程序,对每个人分别判断是否存在一种安排对决的方式,使其能够成为最终获胜者。
输入格式
第一行输入一个整数 $N$。
第二行输入一个长度为 $N$ 的字符串 $A$。$A$ 的第 $i$ 个字符 $A_i$ 表示第 $i$ 个人持有的卡片,为大写英文字母 S、R、P 中的一个($1 \le i \le N$)。
输出格式
第一行输出一个长度为 $N$ 的字符串。其中,第 $i$ 个字符应满足:如果第 $i$ 个人能够成为最终获胜者,则该字符为 $1$;否则,该字符为 $0$($1 \le i \le N$)。
说明/提示
### 样例说明 1
如果先让第 $2$ 个人和第 $3$ 个人进行对决,由于两人持有的卡片相同,因此可以由你任意指定胜者。如果指定第 $2$ 个人获胜,那么剩下的第 $1$ 个人和第 $2$ 个人将进行对决。由于布(P)战胜石头(R),因此第 $2$ 个人可以成为最终获胜者。
也可以让第 $2$ 个人和第 $3$ 个人进行对决,并指定第 $3$ 个人获胜,之后再让第 $3$ 个人与第 $1$ 个人进行对决。这样,第 $3$ 个人可以成为最终获胜者。
由于石头(R)无法战胜布(P),因此第 $1$ 个人绝不可能成为最终获胜者。
### 样例说明 2
如果先让第 $2$ 个人和第 $3$ 个人进行对决,由于剪刀(S)战胜布(P),因此第 $3$ 个人获胜。剩下的第 $1$ 个人和第 $3$ 个人进行对决时,由于石头(R)战胜剪刀(S),因此第 $1$ 个人可以成为最终获胜者。
如果先让第 $1$ 个人和第 $2$ 个人进行对决,由于布(P)战胜石头(R),因此第 $2$ 个人获胜。剩下的第 $2$ 个人和第 $3$ 个人进行对决时,由于剪刀(S)战胜布(P),因此第 $3$ 个人可以成为最终获胜者。
第 $2$ 个人绝不可能成为最终获胜者。
### 限制条件
$1 \le N \le 200\,000$。
$A$ 是一个长度为 $N$ 的字符串,且仅由大写英文字母 S、R、P 组成。
### 子任务
1. ($13$ 分)$N \le 3$。
2. ($16$ 分)字符串 $A$ 中至多包含两种不同的字符。
3. ($47$ 分)$N \le 100$。
4. ($31$ 分)$N \le 5\,000$。
5. ($43$ 分)无附加限制。
翻译由 ChatGPT-5.6 完成