QOJ.ac

QOJ

Time Limit: 5 s Memory Limit: 512 MB Total points: 25 Difficulty: [show]

#18500. 在圖上行走

Statistics

有一個包含 $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$ 為黑色。否則,它是白色。保證節點 $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.