题解区都是用矩阵直接算封闭形式中 \(f_1,f_2,f_3\) 的系数的,这里给个更偏 MO 风格的做法。
首先先想办法用 \(f_x \cdot k(x)\) 代 \(f_x\) 以消掉 \(c^{2x+6}\) 这个不好处理的东西。
明显 \(k(x)\) 是 \(c^{ax+b}\) 的形式,代进去对比系数可以发现 \(a=1,b=6\)。
于是 \(f_x \cdot c^{x+6} = (f_{x-1}\cdot c^{x-1+6}) (f_{x-2}\cdot c^{x-2+6})(f_{x-3}\cdot c^{x-3+6})\),这是一个很好看的形式。
做个换元,\(h_x=f_x \cdot c^{x+6}\),\(h\) 的前三项可以以 \(f\) 算出。
我们知道取个 \(\ln\) 就是标准矩乘形式,但是显然没必要。在矩乘中用乘方代替乘号,用乘法代替加法,就可以直接做这种东西了。事实上就是取个指数后的普通矩乘。
这样能大大减少代码量,至于速度,我还没试(
明天写完再交
标签:矩乘,CF1182E,cdot,题解,取个,形式,名字 From: https://www.cnblogs.com/purplevine/p/16739781.html