4148 - 回文路径

题目描述

植物园规划了一片 N \times N 的方格形观赏区,每一个方格种植了一种特色植物,并用一个大写字母(A–Z)来表示该植物的品种简称。

游客小 A 从入口(左上角格子 1,1)出发,前往出口(右下角格子 N,N)。由于园内道路设计限制,他每一步只能选择向右或向下移动一格且从 1,1 格子出发之后,在达到 N,N 格子之前,不能离开观赏区。

A 在游览时会记录下他走过的每一种植物品种,形成一个长度为 2 \times N-1 的字符串(起点 + 所有中间格子 + 终点)。园方有一个特别的评选活动:如果这条路径对应的植物品种序列是一个回文序列(从前往后读和从后往前读完全相同),则这条游览路线将被评为“锦鲤路径”。

请你帮助园方统计:从入口到出口的所有可能游览路径中,有多少条路径形成的植物品种序列恰好是回文序列。不同路径即使生成相同的序列,也需要分别计数。

请输出符合要求的路线总数对 10^9+7 取模后的结果。

输入

第一行包含一个正整数 N,表示植物园方格的行数和列数。

接下来 N 行,每行 N 个连续的大写字母(无空格分隔),表示从上到下、从左到右每个方格的植物品种简称。

输出

输出一行一个非负整数,表示满足条件的路径数量(对 10^9+7 取模后的结果)。

样例

输入

4
ABCD
BXZX
CDXB
WCBA

输出

12

输入

6
ABCCBA
BACDCB
CDDDDC
CDDDDC
BACDCB
ABCCBA

输出

30

输入

10
ABCDEEDCBA
BCDEFFEDCB
CDEFGGGFEC
DEFGHHHGFE
EFGHIJJHGF
EFGHJJJHGF
DEFGHHHGFE
CDEFGGGFEC
BCDEFFEDCB
ABCDEEDCBA

输出

866
说明

样例 1 说明

从入口 1,1 到出口 4,4 共有 20 条合法路径(需向右移动 3 次,向下移动 3 次)。

其中形成回文序列的路径共有 12 条,对应的回文字符串包括:

  • ABCDCBA(1 条路径)
  • ABCWCBA(1 条路径)
  • ABXZXBA(6 条路径)
  • ABXDXBA(4 条路径)

总计 1 + 1 + 6 + 4 = 12 条。

数据范围与提示

对于 10\% 的数据,满足 1 ≤ N ≤ 25,且方格中的字母仅有 ABC 三种。

对于 20\% 的数据,满足 1 ≤ N ≤ 80,且方格中的字母仅有 ABC 三种。

对于全部测试数据,满足 1 ≤ N ≤ 500,每个格子中的字符均为大写字母 A–Z。

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 0
通过人数 0
金币数量 3 枚
难度 基础


上一题 下一题