20101 - 有向图k元环计数问题

给定一个包含 n 个顶点的有向图 G,用邻接矩阵 M 表示。M[i][j] = 1 表示存在从顶点 i 到顶点 j 的有向边,否则为 0

闭合路径定义为一条从某个顶点出发,最终回到该顶点的路径(路径长度 L \ge 1,允许重复经过顶点和边)。

给定一个正整数 k,请计算图中长度为 k 的闭合路径总数

两条路径如果经过的顶点序列不同,视为不同路径

输入

第一行包含两个整数 nk1 \le n \le 1001 \le k \le 10^9),分别表示顶点数和路径长度。

接下来 n 行,每行 n 个整数,组成邻接矩阵 M

输出

输出一个整数,表示长度为 k 的闭合路径总数。由于答案可能非常大,请对 10^9+7 取模。

样例

输入

3 3
0 1 0
0 0 1
1 0 0

输出

3

输入

3 1
0 1 0
0 0 1
0 0 0

输出

0

提示

解释

图中存在一个 31 \rightarrow 2 \rightarrow 3 \rightarrow 1

长度为 3 的闭合路径:

  • 1 \rightarrow 2 \rightarrow 3 \rightarrow 1
  • 2 \rightarrow 3 \rightarrow 1 \rightarrow 2
  • 3 \rightarrow 1 \rightarrow 2 \rightarrow 33 条。

如果 k=2,答案为 0;如果 k=3,答案为 3

示例2解释

该图为 DAG,不存在任何闭合路径,因此长度为 1 的闭合路径数为 0

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题