QOJ.ac

QOJ

実行時間制限: 10.0 s メモリ制限: 48 MB 満点: 100

#11800. 六角棋游戏

統計

Hex 游戏是在一个由 $n \times n$ 个六边形组成的菱形六边形网格上进行的。下图展示了一个 $n = 5$ 的网格示例:

两名玩家分别持有自己的颜色,即红色和蓝色。玩家轮流进行,每回合一名玩家将一个尚未着色的六边形涂上自己的颜色。红方先手,当所有六边形都被涂色时游戏结束。

如果棋盘的左侧和右侧通过一条仅由红色六边形组成的路径相连,则红方获胜。如果棋盘的顶侧和底侧通过一条仅由蓝色六边形组成的路径相连,则蓝方获胜。该游戏的精妙之处在于这些条件是互斥的,而且不存在平局:最终总会有一名玩家获胜。

路径是指一系列六边形,其中每个六边形都与前一个六边形相邻(共享六条边中的一条)。四个角上的每个六边形都被视为与棋盘的两条边相连,换句话说,它可以作为任一颜色获胜路径的起点或终点。

给定 Hex 游戏进行过程中的当前状态。考虑该游戏可能达到的所有完全着色的棋盘状态。其中有多少种情况红方获胜?

输入格式

第一行包含一个整数 $n$,$2 \le n \le 12$。

接下来的 $n$ 行按行描述棋盘,如上图所示。每行包含 $n$ 个字符。每个字符为以下之一:

  1. .(点)表示尚未着色的六边形
  2. R(大写字母 R)表示已涂成红色的六边形
  3. B(大写字母 B)表示已涂成蓝色的六边形

保证给定的棋盘是 Hex 游戏中的合法中间状态,即红色六边形的数量等于或比蓝色六边形的数量多一个。

输出格式

输出一个整数:红方获胜的最终棋盘数量。注意,我们只统计不同的最终棋盘,达到该状态的移动顺序无关紧要。

样例

输入 1

2
R.
..

输出 1

1

输入 2

12
............
............
............
............
............
............
............
............
............
............
............
............

输出 2

740106499224393094996908447741294397438050

说明

在第一个样例中,红方获胜的唯一最终棋盘如下所示:

在第二个样例中,由于一切都是对称的,红方在所有 $\binom{144}{72}$ 种可能的最终棋盘中正好有一半获胜,即 $\frac{1}{2} \cdot \binom{144}{72} = 740106499224393094996908447741294397438050$。

如果您使用 Java 提交此题,请使用特殊的编译器“Oracle Java 8 (48ML)”和“Oracle Java 7 x32 (48ML)”。这些编译器在执行您的解决方案时会向 Java 环境传递 -Xmx48M 标志,确保您有 48 MiB 的堆内存可用。这些编译器的实际内存限制设置得更高,以允许一定的 JVM 开销。对于所有其他语言,包括其他版本的 Java,内存限制均设置为 48 MiB。

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.