复习杂集 1

矩阵

例题 1:

题面

题目描述
给定一张由T条边构成的无向图,点的编号为1~1000之间的整数。
求从起点S到终点E恰好经过N条边(可以重复经过)的最短路。
注意:数据保证一定有解。
输入格式
第1行:包含四个整数N,T, S, E。2≤T≤100,2≤N<\(10^6\)
第2,···,T+1行:每行包含三个整数,描述一条边的边长以及构成边的两个点的编号。
输岀格式
输出一个整数,表示最短路的长度。

做法

\(M\) 为点数)

先离散化得到 \(M\),建立 \(1 \times M\) 的矩阵,存到这个点的最短路程。

经过 \(1\) 条边的就是把这个矩阵与邻接表相乘(这里的乘法是先 \(+\)\(min\))。

那么经过 \(N\) 条边就是做个矩阵快速幂( \(+min\) 乘法满足结合律)。

例题 2:

题面

A,B 是两个 \(N \times K\) 矩阵
步骤1:计算一个新的NxN矩阵C=AB。
步骤2:计算M=\(C^{N×N}\)
步骤3:对于M中的每个元素r,计算c%6(c除以6的余数)。所有这些余数构成一个新的矩阵M'。
步骤4:计算M′中所有元素的和。
\(N \le 10^3,K \le 6\)

做法

\((A \times B)^{N \times N} = A \times (B \times A)^{N \times N -1} \times B\)

\(B \times A\) 是个 \(6 \times 6\) 矩阵,所以快速幂。

posted @ 2026-05-25 09:13  Distant_Cloud  阅读(3)  评论(0)    收藏  举报