期中考试后总结-矩阵快速幂

前言:总结了一下期中考试后OI和学习上的一些收获,以及需要接下来加强的地方

———————————————————————————————————————————————————————————————————————————————————————————————————————————

我们该航向怎样的未来 无数交织自传 相遇在汪洋中 当你抬头看 何时那万种渐层的斑斓 会默默绽放在 黑夜终端——五月天《少年他的奇幻漂流》

2024.05.28-2024.05.30 矩阵快速幂

1.基础知识:矩阵乘法

其中c[i][j]是A的第i行和B的第j列对应乘积的和

显然,矩阵乘法的复杂度是O(n^3)

矩阵快速幂

就是算A^n,方法很简单,把快速幂中的乘法改成矩阵的乘法就行了

T1序列的第k个数

等差数列用性质去套就行,用乘法,然后等比数列就是快速幂,然后因为学的是矩阵快速幂,所以用矩阵优化

T2斐波那契数列

板子题,自己找题解吧qwq

T3行为方案

应该可以构建按照题意建图,然后构造一个邻接矩阵,矩阵快速幂优化

我们设它的ac次方表示表示ac步后的方案数

那么在原地停留和自爆怎么处理?
在原地停留很简单,我们只要认为每个点都有一个从自己到自己的自环即可。

那自爆呢?
我们可以将自爆这个状态也看成一个城市,就设它为编号0。我们在邻接矩阵上从每个点都向0连一条边,0除了自己外不连其他出边。

这样就满足了任何一个点随时可以自爆,且无法恢复到其他状态。

最后统计答案就行

T4矩阵求和

构造一个包含A的转移矩阵AC,然后记得AC^(k+1)的右上角减去n*n

然而不会使用数学编译器qwq

T5最短路径

是DP,设f[i][j][k]表示从i走到j的k条路的最短路径长度之和,所以方程如下:

f[i][j][k]=min(f[i][t][k-1]+f[t][j][1])

因为在转移是k只与k-1有关,所以可以简化三维f[i][j]=min(f[i][t]+f[t][j])

这个就是矩阵快速幂,所以走n条路就等于把方程看为矩阵进行n次的矩阵乘幂,最后就是f[s][e]

然后,需要离散化!!这是伟大的AC_love告诉我的

我不知道怎么离散化

posted @ 2024-05-30 19:14  Merlin·Lee  阅读(4)  评论(0编辑  收藏  举报