分析:
太忙(lan)了不想写,附我看的链接
https://www.cnblogs.com/ivorysi/p/8868453.html
#include<cstdio>
#include<cstring>
#include<algorithm>
#define SF scanf
#define PF printf
#define MAXN 25
#define MAXM 10010
#define MOD 1163962801
using namespace std;
typedef long long ll;
ll px[MAXN],py[MAXN],v1[MAXM],v2[MAXM],w[MAXN][MAXN],v[MAXN][MAXN][MAXN][MAXN];
int st[MAXM],ed[MAXM];
const ll G=46;
int N,M;
ll T;
struct Matrix{
ll a[MAXN][MAXN];
Matrix operator * (const Matrix &b) const {
Matrix c;
c.clear();
for(int i=0;i<N;i++)
for(int j=0;j<N;j++)
for(int k=0;k<N;k++)
c.a[i][j]=(c.a[i][j]+a[i][k]<