luogu#P11456. [USACO24DEC] Interstellar Intervals G

[USACO24DEC] Interstellar Intervals G

题目描述

现在是公元 30003000 年,Bessie 成为了第一头进入太空的奶牛!在她穿越星际的旅程中,她发现了一条有 NN2N51052 \leq N \leq 5 \cdot 10^5)个点的数轴,点的编号从 11NN。所有点初始时都是白色的。她可以执行任意次以下操作。

选择一个数轴上的位置 ii 和一个正整数 xx。然后,将区间 [i,i+x1][i, i + x - 1] 中的所有点涂成红色,区间 [i+x,i+2x1][i + x, i + 2x - 1] 中的所有点涂成蓝色。所有选择的区间必须是不交的(即区间 [i,i+2x1][i, i + 2x - 1] 中的点不能已经被涂成红色或蓝色)。同时,整个区间必须落在数轴内(即 1ii+2x1N1 \leq i \leq i + 2x - 1 \leq N)。 Farmer John 给了 Bessie 一个长度为 NN 的字符串 ss,由字符 R\tt RB\tt BX\tt X 组成。该字符串表示了 Farmer John 对每个点的颜色偏好:si=Rs_i=\texttt{R} 表示第 ii 个点必须被涂成红色,si=Bs_i = \texttt{B} 表示第 ii 个点必须被涂成蓝色,si=Xs_i = \texttt{X} 表示第 ii 个点的颜色没有限制。

帮助 Bessie 计算满足 Farmer John 偏好的不同的数轴涂色方案的数量。两个涂色方案是不同的,如果至少一个对应点的颜色不同。由于答案可能很大,输出答案模 109+710^9+7 的余数。

输入格式

输入的第一行包含一个整数 NN

下一行包含字符串 ss

输出格式

输出满足 Farmer John 偏好的不同的数轴涂色方案的数量,对 109+710^9+7 取模。

6
RXXXXB
5
6
XXRBXX
6
12
XBXXXXRXRBXX
18

提示

样例 1 解释:

Bessie 可以选择 i=1,x=1i=1,x=1(即将点 11 涂成红色,点 22 涂成蓝色)以及 i=3,x=2i=3,x=2(即将点 3,43,4 涂成红色,点 5,65,6 涂成蓝色)来得到涂色方案 RBRRBB\tt RBRRBB

其他涂色方案有 RRBBRB\tt{RRBBRB}RBWWRB\tt{RBWWRB}RRRBBB\tt{RRRBBB}RBRBRB\tt{RBRBRB}

样例 2 解释:

六种涂色方案为 WWRBWW\tt{WWRBWW}WWRBRB\tt{WWRBRB}WRRBBW\tt{WRRBBW}RBRBWW\tt{RBRBWW}RBRBRB\tt{RBRBRB}RRRBBB\tt{RRRBBB}

  • 测试点 44N500N\leq 500
  • 测试点 565\sim 6N104N\leq 10^4
  • 测试点 7137\sim 13ss 中至多 100100 个字符不为 X\tt{X}
  • 测试点 142314\sim 23:没有额外限制。