luogu#P11426. [清华集训 2024] 比赛
[清华集训 2024] 比赛
题目描述
有 名选手,编号分别为 。编号为 的选手的实力值为 。所有选手分为红、蓝两队,其中编号为 的选手所在的队伍用字符 描述。 为 R
表示他在红队, 为 B
表示他在蓝队。
现在将所有选手排成一个环,每一对相邻且不属于同一队的选手会进行一场比赛,实力值较大的选手获胜,他所在的队伍的得分增加一。
然而,蓝队的选手勾结了裁判,如果一场比赛中红队选手获胜,且他在蓝队选手的顺时针方向上,则这场比赛不计入得分。
现在你想知道,对于每个 ,有多少种将选手排列的方法,使得红队得分恰好比蓝队得分大 。两种方案不同,当且仅当存在某个选手,使得他顺时针方向的下一个选手在两个方案中不同。
由于答案很大,你只需要输出答案对 取模后的值。
输入格式
从标准输入读入数据。
第一行包含一个整数 ,表示选手个数。
第二行包含一个长度为 的字符串 ,表示每个选手所属的队伍。
输出格式
输出到标准输出。
输出一行 个整数,分别表示 的方案数对 取模后的值。
3
BRB
0 0 1 1 0 0 0
5
RBBRR
0 0 0 0 8 8 8 0 0 0 0
见题目目录下的 3.in 与 3.ans。
见题目目录下的 3.in 与 3.ans。
提示
【样例 1 解释】
如图所示,共有两种排列的方法。
第一种排列中,选手 与 之间的比赛虽然选手 获胜,但他属于红队,且在选手 顺时针方向,故这场比赛不计入得分。而选手 和 之间的比赛蓝方获胜。因此红队得分为 ,蓝队得分为 。
第二种排列中,共进行两场比赛,且均计入得分。红队得分与蓝队得分均为 。
【子任务】
对于所有数据,满足 , 为由 B
和 R
构成的字符串。
子任务编号 | 分值 | |
---|---|---|