QOJ.ac

QOJ

时间限制: 5 s 内存限制: 512 MB 总分: 25 难度: [显示]

#18500. 在图上行走

统计

有一个包含 $N$ 个节点的图,节点编号从 $1$ 到 $N$。每个节点被染成黑色或白色。此外,已知节点 $1$ 为黑色,节点 $2$ 为白色。对于任意 $i$ 和 $j$($i \neq j$),存在一条从节点 $i$ 到 $j$ 的有向边,该边为红色或蓝色。其颜色由以下逻辑决定:

  • 如果 $i < j$ 且两节点颜色相同,则为红色。
  • 如果 $i < j$ 且两节点颜色不同,则为蓝色。
  • 如果 $i > j$ 且两节点颜色相同,则为蓝色。
  • 如果 $i > j$ 且两节点颜色不同,则为红色。

LoBren 最喜欢的颜色初始为蓝色。随后他在图上进行行走(注意行走允许重复经过顶点和边)。他在行走时遵循以下规则:

  • 如果他当前位于节点 $1$,他最喜欢的颜色变为蓝色。
  • 否则,如果他当前位于节点 $2$,他最喜欢的颜色变为红色。
  • 然后,他从当前节点出发,沿着一条与他最喜欢的颜色相同的出边移动。可以证明这样的边一定存在。
  • 最后,他可以选择重复上述过程。

通过按顺序记录他访问的节点,他得到一个列表 $l_1, l_2, \dots, l_L$。求满足以下条件的列表数量,结果对 $10^9 + 7$ 取模:

  • 列表以节点 $1$ 开始,以节点 $2$ 结束。
  • 对于所有 $3 \le i \le N$,节点 $i$ 在列表中最多出现一次。
  • 对于所有 $3 \le j \le L$,满足 $l_{j-2} \neq l_j$。

可以证明满足条件的列表数量是有限的。

注意,“mod”在大多数编程语言中对应 % 运算符,表示除法后的余数。例如,$5 \pmod 3 = 2$ 且 $17 \pmod 4 = 1$。

输入格式

第一行包含一个整数 $N$。

第二行包含一个长度为 $N$ 的字符串,由字符 BW 组成。如果第 $i$ 个字符是 B,则节点 $i$ 为黑色。否则,节点 $i$ 为白色。保证节点 $1$ 为黑色,节点 $2$ 为白色。

子任务

下表显示了 25 分的分布情况:

分值 $N$ 的范围 附加限制
1 分 $3 \le N \le 8$
3 分 $3 \le N \le 20$
4 分 $3 \le N \le 50$ 恰好有一个黑色节点
4 分 $3 \le N \le 50$ 存在一个整数 $i$($2 \le i \le N$),使得范围 $[2, i]$ 内的所有节点均为白色,其余节点均为黑色
6 分 $3 \le N \le 50$ 最多有 5 个黑色节点
7 分 $3 \le N \le 50$

输出格式

输出一行,表示满足条件的列表数量,对 $10^9 + 7$ 取模。

样例

样例输入 1

4
BWWB

样例输出 1

4

说明

该图如下所示:

实线表示蓝色边,虚线表示红色边。可能的路径为:

  • $1 \to 2$
  • $1 \to 3 \to 2$
  • $1 \to 3 \to 4 \to 2$
  • $1 \to 2 \to 3 \to 1 \to 2$

在下划线标注的节点处,最喜欢的颜色为红色,其余情况为蓝色。

样例输入 2

12
BWBWBBBWWBBW

样例输出 2

3377552

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.