#dpr. [dp_r]Walk
[dp_r]Walk
问题描述
有一个简单的有向图,具有个顶点,编号为。
对于任意和(),给定一个整数表示是否存在一个从顶点到的有向边。如果,则表示存在从顶点到的有向边;如果,则表示不存在。
求在图中长度为的不同有向路径的数量,结果需对取模。在计算路径数量时,允许路径经过同一条边多次。
约束条件
- 输入中的所有值均为整数。
- 的取值为或。
输入
输入以以下格式从标准输入中给出:
:
输出
输出在图中长度为的不同有向路径的数量,结果需对取模。
示例输入1
4 2
0 1 0 0
0 0 1 1
0 0 0 1
1 0 0 0
示例输出1
6
图如下所示:
长度为的有向路径共有条:
- → →
- → →
- → →
- → →
- → →
- → →
示例输入2
3 3
0 1 0
1 0 1
0 0 0
示例输出2
3
图如下所示:
长度为的有向路径共有条:
- → → →
- → → →
- → → →
示例输入3
6 2
0 0 0 0 0 0
0 0 1 0 0 0
0 0 0 0 0 0
0 0 0 0 1 0
0 0 0 0 0 1
0 0 0 0 0 0
示例输出3
1
图如下所示:
长度为的有向路径共有条:
- → →
示例输入4
1 1
0
示例输出4
0
示例输入5
10 1000000000000000000
0 0 1 1 0 0 0 1 1 0
0 0 0 0 0 1 1 1 0 0
0 1 0 0 0 1 0 1 0 1
1 1 1 0 1 1 0 1 1 0
0 1 1 1 0 1 0 1 1 1
0 0 0 1 0 0 1 0 1 0
0 0 0 1 1 0 0 1 0 1
1 0 0 0 1 0 1 0 0 0
0 0 0 0 0 1 0 0 0 0
1 0 1 1 1 0 1 1 1 0
示例输出5
957538352
注意要对结果取模。