QOJ.ac

QOJ

Limite de temps : 5 s Limite de mémoire : 512 MB Points totaux : 25 Difficulté: [afficher]

#18500. グラフ上の歩行

Statistiques

$N$ 個のノードが $1$ から $N$ まで番号付けられたグラフがある。各ノードは黒または白に色付けされている。さらに、ノード $1$ は黒、ノード $2$ は白であることがわかっている。$i \neq j$ である任意の $i, 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$ について、ノード $i$ はリスト内に高々一度しか現れない。
  • $3 \le j \le L$ を満たすすべての $j$ について、$l_{j-2} \neq l_j$ が成り立つ。

このようなリストの数は有限であることが証明できる。

なお、「mod」はほとんどのプログラミング言語における % 演算子に対応し、除算の余りを表す。例えば、$5 \pmod 3 = 2$、$17 \pmod 4 = 1$ である。

入力

入力の最初の行には、単一の整数 $N$ が含まれる。 次の行には、文字 BW からなる長さ $N$ の文字列が含まれる。$i$ 番目の文字が B ならばノード $i$ は黒であり、そうでなければ白である。ノード $1$ は黒、ノード $2$ は白であることが保証されている。

小課題

得点 $N$ の範囲 追加の制約
1点 $3 \le N \le 8$ なし
3点 $3 \le N \le 20$ なし
4点 $3 \le N \le 50$ 黒いノードがちょうど1つ存在する。
4点 $3 \le N \le 50$ $2 \le i \le N$ を満たす整数 $i$ が存在し、範囲 $[2, i]$ 内のすべてのノードが白で、それ以外のすべてのノードが黒である。
6点 $3 \le N \le 50$ 黒いノードが最大5つ存在する。
7点 $3 \le N \le 50$ なし

出力

1行に、可能なリストの個数を $10^9 + 7$ を法として出力せよ。

入出力例

入力 1

4
BWWB

出力 1

4

注記

出力例 1 の説明: グラフは以下のようになる。

実線は青いエッジ、破線は赤いエッジを表す。可能な経路は以下の通りである。

  • $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.