题意:给一个有向图,从任意点开始,最多走m步,求形成的图案总数. 思路:令dp[i][j]表示走j步最后到达i的方法数,则dp[i][j]=∑dp[k][j-1],其中k表示可以直接到达i的点,答案=∑dp[i][j].关键在于如何减少状态转移的时间,考虑用矩阵加速. 构造矩阵:D = ,其中a[i][j]表示有向图,用于状态转移,右边的一列1用于累加答案 则答案=[1,1,...1n+1]*DM-1=∑∑DM-1[i][j],1≤i≤n+1,1≤j≤n+1 PS:封装的ModInt放矩阵的最里…