矩阵,分治,线段树。 (其一)

矩阵

我一向对矩阵是深恶痛绝的,难写是一点,更多是因为我总觉得发明矩阵的人觉得自己很酷。

(矩阵这玩意总是让我想不清楚本质

以至于我总想着以某些方法代替矩阵,以前喜欢用分治,那时认为矩阵的本质是分治,但是分治这玩意写出来奇丑无比,今天既然见到题解有类似的实现,便顺便梳理一下, 希望有更深的理解。

矩阵也许是有用的,但至少在我目前看到的oi题里,矩阵只是一种实现方式,而非思想,过多的去说矩阵这个词,总有点故作玄虚的感觉。一个看上去没啥用的东西,突然实现了一个神奇的效果,难免让人有些不爽。

我们说的矩阵优化,实际上是矩阵快速幂,但是很好笑,人们总以矩阵简称这玩意,其实真正起到作用的,倒不如说是快速幂。

分治

我目前所看到的矩阵优化,都可以认为是快速幂的一种变形,而快速幂本质上就是分治的思想。

分治顾名思义分两步,先分开后合并,那么有人就要问了,一个可以整体处理的东西,甚至于迟早还要合并,分开做什么?

复用。

比如说快速幂,分开的两部分本质上是一样的,我们可以只处理其中一部分,却得到两份的答案,整体固然没有重复, 但分成碎小的块后,就可能有重复了。不重的整体是由重复的单体组成的。这是分治实现复用的例子。

再比如说我们今天这题,dp直接做可以,但是修改怎么办?一次简单的修改就要整体重做dp?怎么办?

分开。

至少你知道,你修改第i位,i位以前不用重新dp,这是不是一种复用?更进一步如果我们能分成若干块, 那么是不是只有i所属于
的那一块要修改?


下课了,先润

posted @ 2023-08-03 16:54  ltdJcoder  阅读(10)  评论(0编辑  收藏  举报