目录
矩阵快速幂
矩阵乘法
其中c[i][j]为A的第i行与B的第j列对应乘积的和,即
矩阵乘法性质
结合律(AB)C=A(BC)
分配率(A+B)C=AC+BC,C(A+B)=CA+CB
数乘结合性k(AB)=(kA)B=A(kB)
矩阵快速幂 O(n³logk)(n为矩阵大小)
根据结合律,我们有若,
将快速幂中的乘法替换成矩阵乘法即可
斐波那契数列
,求f[n],n<1e9
广义斐波那契数列
,求f[n],p,q,n<1e9
将单位矩阵改为即可
例题1
有 𝑁 块砖排成一排染色,每一块砖需要涂上红、蓝、绿、黄这 4 种颜色中的其中 1 种。且当这 𝑁 块砖中红色和绿色的块数均为偶数时,染色效果最佳。问一共有多少种方案可以使染色效果最佳
- A[i] 表示 i 个格子,红绿均为偶数的染色方案数
- B[i] 表示 i 个格子,红绿均为奇数的染色方案数
- C[i] 表示 i 个格子,红绿有一个为偶数的染色方案数
例题2
给一个n个点m条边的有向图,问到每个点的长度为k的路径有多少条(路径可走重复点和边)n<100,k<1e9
邻接矩阵的k次方即为答案
高斯消元 O(n³)
解n元n次方程组
洛⾕ P3232 [HNOI2013]游⾛
⼀个⽆向连通图,顶点从1编号到N,边从1编号到M。 ⼩Z在该图上 进⾏随机游⾛,初始时⼩Z在1号顶点,每⼀步⼩Z以相等的概率随机 选 择当前顶点的某条边,沿着这条边⾛到下⼀个顶点,获得等于这 条边的编号的分数。当⼩Z 到达N号顶点时游⾛结束,总分为所有获 得的分数之和。现在,请你对这M条边进⾏编号,使得⼩Z获得的总分的期望值最⼩。(N <= 500)
- 如果知道每条边期望被经过多少次,那么按照⼤⼩顺序安排边权即可。
- 然⽽边数没有限制,可能在N2级别,搞不出对应的算法。 如果我们已知每个点期望经过次数呢
- 经过除n以外的每个点后,都是⼀定要出去的,⽽出去时选边是随机 的。设f[i]为点i期望经过次数,g[i]为边i期望经过次数,则:
- 对每个点列方程,进行高斯消元即可
博弈论
博弈论 ,是经济学的一个分支,主要研究具有竞争或对抗性质的对象,在一定规则下产生的各种行为。博弈论考虑游戏中的个体的预测行为和实际行为,并研究它们的优化策略。
通俗地讲,博弈论主要研究的是:在一个游戏中,进行游戏的多位玩家的策略。对于算法竞赛中的博弈问题,
一般具有以下特征:博弈模型为两人轮流决策的非合作博弈。即两人轮流进行决策,并且两人都使用最优策略来获取胜利。博弈是有限的。即无论两人怎样决策,都会在有限步后决出胜负。公平博弈。即两人进行决策所遵循的规则相同。
公平组合游戏
公平组合游戏的定义如下:游戏有两个人参与,二者轮流做出决策,双方均知道游戏的完整信息;任意一个游戏者在某一确定状态可以作出的决策集合只与当前的状态有关,而与游戏者无关;游戏中的同一个状态不可能多次抵达,游戏以玩家无法行动为结束,且游戏一定会在有限步后以非平局结束。
公平游戏具有一个重要的性质:如果一个游戏者能够将状态A变为状态B,那么另外一个游戏者必然也能实现这样的操作。
有向图游戏
给定一个有向无环图和一个起始顶点上的一枚棋子,两名选手轮流交替移动棋子(沿着有向边移动),无法移动者判定为输家。
我们不难发现:任何一个公平组合游戏都可以通过把每个局势堪称一个顶点,对每个局势和它的子局势连一条有向边来抽象成这个"有向图游戏”
博弈论
- 必胜态:先手必胜的状态
- 必败态:先手必败的状态
通过推理,我们可以得到以下三条定理
- 没有后继状态的状态是必败状态
- 一个状态是必胜状态当且仅当存在至少一个必败状态为它的后继状态
- 一个状态是必败状态当且仅当他的所有后继状态均为必胜状态
Nim游戏
n堆物品,每堆有ai个,两个玩家轮流取走任意一堆的任意个物品,但不能不取。无法操作的人失败
- 那么当且仅当ai的异或和为0时,该状态为必败状态;否则该状态为必胜状态。
- 证明:
- 1.当异或和为0时,所有移动均会使得异或和不为0
- 2.当异或和不会0时,一定存在某种移动使得异或和为0
- 1.显然
- 2.不妨假设异或和为k ≠ 0 如果我们要将
i改为
,则
,根据异或定义,一定有奇数个
在二进制下k的最高位为 1。又因为
在二进制下k的最高位为 0,所以满足这个条件的
,一定存在合法移动。
SG函数
首先我们引入mex函数的定义:定义 mex 函数的值为不属于集合 S中的最小非负整数,即:
例如
对于状态x和它的所有k个后继状态,定义SG函数
SG函数定理性质:
- 所有的终结点所对应的顶点,其SG值为0,因为它的后继集合为空集(所有的终结点都是必败点)
- 对于一个SG(X)=0的顶点X,它的所有后继都无法满足SG(y)!=0(无论如何操作,从必败点(P点)都只能进入必胜点(N点))
- 对于一个SG(X)!=0的顶点,必定存在一个后继点满足g(y)=0(从任何必胜点(N点)操作,至少有一种方法可以进入必败点(P点)(就是那种我们要走的方法))
SG定理
组合游戏:多个游戏的组合,每次可选择其中一个游戏进行一次操作,率先使所有游戏均不可操作者失败
SG定理:组合游戏的SG函数为各游戏SG函数的异或和
做题方法
- 有向图游戏:
- 直接算SG函数(暴力or算法优化)
- 手算SG函数找规律
- 贪心
- 非有向图游戏
- 转化成有向图游戏
- 人类智慧