#P17135. [KOI 2026 #1] 剪刀石头布

    ID: 19478 远端评测题 1000ms 1024MiB 尝试: 0 已通过: 0 显示难度普及+/提高− 上传者: 标签>贪心前缀和2026KOI(韩国)

[KOI 2026 #1] 剪刀石头布

题目描述

编号为 11NNNN 个人排成一列。对于每个整数 ii1iN1 \le i \le N),第 ii 个人站在从左向右数第 ii 个位置,并持有一张卡片 AiA_i。每张卡片均为剪刀(S)、石头(R)、布(P)中的一种。

如果两个不同的人之间没有其他人,则称这两个人相邻。你可以选择相邻的两个人,让他们进行对决。每次对决按照以下方式进行:

  • 如果两个人持有的卡片不同,则按照剪刀石头布的规则决定胜者。具体而言,石头(R)战胜剪刀(S),剪刀(S)战胜布(P),布(P)战胜石头(R)。
  • 如果两个人持有的卡片相同,则可以由你任意指定其中一人为胜者。

败者将离场,胜者则保留自己原有的卡片,并留在原来的位置上。有人离场后,可能会有原本不相邻的两个人变得相邻,而他们之后也可以进行对决。

你需要恰好进行 N1N-1 次对决,使得最后只剩下一名获胜者。请编写一个程序,对每个人分别判断是否存在一种安排对决的方式,使其能够成为最终获胜者。

输入格式

第一行输入一个整数 NN

第二行输入一个长度为 NN 的字符串 AAAA 的第 ii 个字符 AiA_i 表示第 ii 个人持有的卡片,为大写英文字母 S、R、P 中的一个(1iN1 \le i \le N)。

输出格式

第一行输出一个长度为 NN 的字符串。其中,第 ii 个字符应满足:如果第 ii 个人能够成为最终获胜者,则该字符为 11;否则,该字符为 001iN1 \le i \le N)。

3
RPP
011
3
RPS
101

提示

样例说明 1

如果先让第 22 个人和第 33 个人进行对决,由于两人持有的卡片相同,因此可以由你任意指定胜者。如果指定第 22 个人获胜,那么剩下的第 11 个人和第 22 个人将进行对决。由于布(P)战胜石头(R),因此第 22 个人可以成为最终获胜者。

也可以让第 22 个人和第 33 个人进行对决,并指定第 33 个人获胜,之后再让第 33 个人与第 11 个人进行对决。这样,第 33 个人可以成为最终获胜者。

由于石头(R)无法战胜布(P),因此第 11 个人绝不可能成为最终获胜者。

样例说明 2

如果先让第 22 个人和第 33 个人进行对决,由于剪刀(S)战胜布(P),因此第 33 个人获胜。剩下的第 11 个人和第 33 个人进行对决时,由于石头(R)战胜剪刀(S),因此第 11 个人可以成为最终获胜者。

如果先让第 11 个人和第 22 个人进行对决,由于布(P)战胜石头(R),因此第 22 个人获胜。剩下的第 22 个人和第 33 个人进行对决时,由于剪刀(S)战胜布(P),因此第 33 个人可以成为最终获胜者。 第 22 个人绝不可能成为最终获胜者。

限制条件

1N2000001 \le N \le 200\,000

AA 是一个长度为 NN 的字符串,且仅由大写英文字母 S、R、P 组成。

子任务

  1. 1313 分)N3N \le 3
  2. 1616 分)字符串 AA 中至多包含两种不同的字符。
  3. 4747 分)N100N \le 100
  4. 3131 分)N5000N \le 5\,000
  5. 4343 分)无附加限制。

翻译由 ChatGPT-5.6 完成