喜欢奇数的面包师
这道题目就是广义矩阵乘法了,我们只考虑奇偶,所以用\(0/1\)表示元素就足够了
那我们假设现在有了当前的状态向量,长度为\(n\),表示第\(i\)个面包师当前横线的奇偶,我们考虑转移矩阵应该长成什么样子
对于下一个月,某个面包师横线的增量肯定由本月所有与其关联的面包师相关,那么无关的面包师无论是不是奇都不会产生贡献,所以想到了与操作;此时刚好也可以满足有关的面包师如果是偶的话也不会产生贡献
所以令这篇文章中的⊗和⊕分别为&(与)和^(异或),可以验证这个广义矩阵乘法满足结合律,所以可以用矩阵快速幂
能想到这里,也是因为这道题目是同步的状态变换,跟“石头游戏”这道题目非常像
然后来看看老板的做法
这个做法呢就是不太与广义矩阵乘法关联了,用的操作还是普通的矩阵乘法,只是在代码里面每次处理一下就好了,可以发现正确性是有的,也不需要验证广义矩阵乘法满足交换律