Maybe something will cha|

Semorius

园龄:1年9个月粉丝:4关注:10

7.19 线性代数

传送门

听完课感觉会的还是会,不会的依然听不懂。一做题,这真的跟讲的那些线性代数有关系吗?

[ABC189E] Rotate and Flip

因为所有点一起动,其实可以记一下整体位移情况的,但既然是线代专场,应该用更优雅的方法。

点的坐标变换可以用矩阵表示,记一个转移矩阵前缀和即可。

CF1662C European Trip

如果没有相邻两次不可以走同一条边的限制,那就是矩阵快速幂板题了。

一开始有一个错误的思路,走两步走重边的情况只有回到起点这一种,所以想到把初始矩阵平方后把主对角线赋为 0。再依靠这个转移。但这个并不能保证所有移动都没有在相邻步中走重边。比如保证了 1 ~ 2 步与 3 ~ 4 步,但并不能保证 2 ~ 3 步。

后面甚至想过拆点,但发现本质相同

但这是有启发性的,长为 k 的满足限制的路径条数只与长为 k1k2 的满足条件的路径条数有关。从 k1 转移到 k 的过程中,新增的不满足条件的路径,恰好为在长为 k2 的满足条件的路径中走出去再回到原终点的情况。设 dpx,i,j 表示长为 x 的从 ij 的满足限制的路径条数,与 j 有连边的点的集合为 Sdj 表示点 j 的度数。于是有:

dpx,i,j=(ySdpx1,i,y)dpx2,i,j×(dj1)

至于为什么是 dj1,因为从点 j 沿着 ij 的路径方向撤一条边再回来的情况在上一层转移中已经减掉了。

就因为这个一开始以为自己假了,卡了好久,后来发现减 1 就行啊啊啊啊啊啊啊

具体的转移用矩阵实现转移,只不过要把前两层的状态都放进去,类似于矩阵套矩阵。

记长为 x 的满足限制的路径条数的答案矩阵为 Ax,全为零的矩阵为 O,单位矩阵为 I,初始存图的邻接矩阵为 C,转移矩阵为 B。上述矩阵大小均为 n×n,那么:

[Ax2Ax1][OBIC]=[Ax1Ax]

其中:

B=[(d11)00...000(d21)0......0(dn11)000...00(dn1)]

矩阵快速幂优化转移即可。注意长为 2 的合法路径无法从长为 0 的转移过来,需要特判把主对角线赋为 0k=1 时要特判。

时间复杂度 O(8n3logk)

P4035 [JSOI2008] 球形空间产生器

相邻两方程相减可以消去二次项,变为 nn 元一次方程,高斯消元法求解即可。

P5337 [TJOI2019] 甲苯先生的字符串

看成图论问题,给出串中相邻元素不能连边,矩阵快速幂求长为 n 的路径数。

P2447 [SDOI2010] 外星千足虫

发现每两个限制相异或后不改变条件,类似于高斯消元把它消成上三角,用线性基实现。

本文作者:Semorius

本文链接:https://www.cnblogs.com/Semorius/p/17567472.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Semorius  阅读(15)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起