题目描述:
道路千万条,安全第一条!宏帆校区到渝北校区有很多种走法,我们可以把走法看成N个节点的有向图,假设宏帆代表0号节点,渝北代表N-1号节点,GM想从0号节点出发,到N-1号节点,但必须恰好在T时刻到达!你能告诉GM一共有多少种走法吗?注意:GM不能在某个节点逗留,且通过某有向边时严格为给定时间(边权)。
输入:
第一行包含两个整数,N T。 接下来有 N 行,每行一个长度为 N 的字符串。 第i行第j列为'0'表示从节点i到节点j没有边。 为'1'到'9'表示从节点i到节点j需要耗费的时间。
满足 2 <= N <= 10 ; 1 <= T <= 1000000000。
输出:
包含一个整数,可能的路径数,这个数可能很大,只需输出这个数除以2009的余数。
输入样例1:
2 2
11
00
输出样例1:
1
输入样例2:
5 30
12045
07105
47805
12024
12345
输出样例2:
852
思路分析:
我们先这样弱化一下题目
假设这个方阵只有0或1,那么其就是不是表示它们点之间的有向边。
而它自己和自己相乘就是表示从一个顶点到另一个顶点。
在T次方之后,矩阵的数就是从i到j的方案数。(其中i为行数,j为列数)。
遗憾的是本题的边权是[0,9],不是[0,1]。
惊喜的是最大边权是9!N也不超过10!都不算大!
马上想到: