矩阵乘法优化 dp 的 trick

倘若一类高维限制 \(f[i+1][]...[]=\sum k*f[i][]...[]\),是不是可以把后面一堆维抽象成一个点,\(k\) 抽象成经过当前 2 个点间有 \(k\) 条边,或者一条边但有 \(k\) 种经过的方式(跑着,爬着,走着……),那么是不是每次转移相当于多经过一条边。答案相当于从起点到终点的方案数?

广义地,甚至还可以抽象为最长路/最短路,即加法与 \(\max,\min\) 的复合运算。

需要注意的是,即使在暴力中起点赋值,但是在矩乘中是不是相当于自环,显然这是不被允许的。

例题

https://www.luogu.com.cn/problem/CF1152F2

https://www.luogu.com.cn/problem/solution/CF696D

题解

https://www.cnblogs.com/xugangfan/p/16494878.html

posted @ 2022-07-19 18:26  FxorG  阅读(181)  评论(0编辑  收藏  举报