矩阵加速相关总结

下面来总结一下最近刷过的矩阵加速DP的题目。

普通矩阵快速幂

P2233 [HNOI2002]公交车路线

P5789 [TJOI2017]可乐(数据加强版)

拆点

如果图中的边有边权而且边权很小,可以考虑拆点。

P4159 [SCOI2009] 迷路

边化点

如果有一些形如不能走回头路的限制,可以考虑边化点。

P2151 [SDOI2009]HH去散步

bitset优化矩阵乘法

如果矩阵是01矩阵且操作可以用位运算优化,可以考虑bitset优化矩阵乘法

CF576D Flights for Regular Customers

分组

根据矩阵的结合律,可以先将一个矩阵自乘 \(p\) 次,在将自乘后的矩阵自乘 \(n/p\) 次。

P2579 [ZJOI2005]沼泽鳄鱼

P3821 Isaac

广义矩阵乘法

考虑这样的式子:

\[c[i,j]=\bigoplus\limits_{k=1}^\beta\left(a[i,k]\otimes b[k,j] \right) \]

只要满足一下几个条件,该式子就可以作为矩阵乘法进行使用。(主要是满足矩阵乘法的结合律)

  1. \(\otimes\) 满足交换律、结合律。
  2. \(\otimes\)\(\oplus\) 有分配率。

P2886 [USACO07NOV]Cow Relays G

P3502 [POI2010]CHO-Hamsters

P5678 [GZOI2017]河神

二进制拆分

如果有多个询问,且每个询问我们都要对 \(n\times n\) 的矩阵做快速幂时,可以考虑先将该矩阵的2的整次幂的幂次预处理出来。对于每个询问,我们只需要将询问二进制拆分以后再进行求解。

P6569 [NOI Online #3 提高组] 魔法值

posted @ 2021-05-24 22:15  蓝田日暖玉生烟  阅读(120)  评论(0编辑  收藏  举报