牛牛去牛市旅游
题号:NC207754
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

牛市是一个古老而神秘的城市,有很多历史悠久的遗迹,这些遗迹在考古队考察之后很多都被开发成了景点。
牛牛去牛市旅游,牛市有N个景点,每两个景点之间都被一条无向的道路连接(即A和B之间有一条道路那么牛牛既可以从A走到B也可也从B走到A)
牛牛想走完牛市的所有景点,他从一个景点开始旅游在另外某一个景点结束旅游,每个景点都会经过且只经过一次。
但是除了景点,景点与景点之间的某些道路也是很美丽的,所以有一些道路是牛牛一定要走的,现在告诉你了牛牛一定要走的道路,问他有多少种方法走完所有景点。

输入描述:

第一行,一个数N,代表共有N个景点。

以下是一个N行N列的字符矩阵a,如果a[i][j]是Y则代表第i个景点和第j个景点之间这条道路必须被经过,是N代表可经过可不经过。

输出描述:

输出牛牛的方案数,数字可能很大mod 1000000007 输出即可。
示例1

输入

复制
3
NYN
YNN
NNN

输出

复制
4

说明

四种方案分别是
1->2->3
2->1->3
3->1->2
3->2->1