P6772 [NOI2020] 美食家
先假设没有美食节,容易得到一个矩阵优化的 dp。
加上美食节过后分成 \(k\) 段考虑,每段分别矩阵快速幂,时间复杂度为 \(O((5n)^3k\log T)\)。
这并不能通过本题。
可以思考快速幂优化乘法的本质,预处理出转移矩阵的 \(2\) 的幂。
原本快速幂是将一堆 \(5n\times 5n\) 的矩阵乘起来,最后再乘一个 \(1\times 5n\) 的矩阵,每一段的时间复杂度达到 \(O((5n)^3\log T)\)。
可以考虑使用结合律交换顺序,每一段分别用 \(1\times 5n\) 的矩阵乘一堆 \(5n\times 5n\) 的矩阵,这样复杂度降为 \(O((5n)^2\log T)\)。
因此总复杂度降为 \(O((5n)^3\log T+(5n)^2k\log T)\)。
CF113D Museum
设 \(f(u,v)(u\neq v)\) 表示分别从 \(u\),\(v\) 出发,在 \(s\) 相遇的概率。
设 \(deg(u)\) 表示 \(u\) 的度数。
假设从 \((u,v)\) 走一条边到 \((i,j)\)。
\[f(u,v)=p(u)p(v)f(u,v)+\sum_{i\ne u}f(i,v)\frac{1-p(u)}{deg(u)}p(v)+\sum_{j\neq v}f(u,j)\frac{1-p(v)}p(u){deg(v)}+\sum_{i\neq u}\sum_{j\neq v}f(i,j)\frac{(1-p(u))(1-p(v))}{deg(u)deg(v)} \]移项得
\[(1-p(u)p(v))f(u,v)-\sum_{i\ne u}f(i,v)\frac{1-p(u)}{deg(u)}p(v)-\sum_{j\neq v}f(u,j)\frac{1-p(v)}{deg(v)}p(u)-\sum_{i\neq u}\sum_{j\neq v}f(i,j)\frac{(1-p(u))(1-p(v))}{deg(u)deg(v)}=0 \]可以发现 \(f(s,s)=1\),对于不等于 \(s\) 的 \(i\),\(f(i,i)=0\)。
因此,这 \(n^2-n\) 个方程每个右边都是一堆关于 \(f(i,i)\) 的线性组合。
左边有 \(n^2-n\) 个未知数,右边有 \(n\) 个参数,对于左边高斯消元即可。
注意特判起点相同的情况。
P2973 [USACO10HOL]Driving Out the Piggies G
对于需要使用高斯消元解决的 dp 问题,必须保证边界值好确定。
设 \(f(u)\) 表示经过 \(u\) 点的期望次数。
\[f(u)=[u=1]+\sum_{u\to v}f(v)\frac{1-\frac{p}{q}}{deg(v)} \]最后,\(i\) 点的答案为 \(f(i)\frac{p}{q}\)。
CF24D Broken robot
设 \(f(i,j)\) 表示从 \((i,j)\) 开始走,走到第 \(n\) 行的期望步数。
\(f(n,i)=0\)。
枚举 \((i,j)\) 可能走到哪里,设走到 \((x,y)\) 的概率为 \(p\),答案为
\[f(i,j)=1+\sum_{x,y}f(x,y)p \]直接高斯消元复杂度是 \(O(n^6)\)。
但是由于不能往上走,因此可以一行一行地高斯消元,复杂度变为 \(O(n^4)\)。
再仔细观察矩阵发现系数都在主对角线附近,因此可以做到 \(O(n^2)\)。
UVA12177 First Knight
设 \(f(i,j)\) 表示从 \((i,j)\) 走到 \((n,m)\) 的期望步数。
\(dp(n,m)=0\)。
\[f(i,j)=1+\sum_{x,y}f(x,y)p((x,y)\rightarrow(i,j)) \]暴力高斯消元复杂度为 \(O(n^3m^3)\)。
将坐标建立与编号的映射 \((i,j)\longrightarrow (n-i)m+m-j+1\)。
可以考虑只保留上三角矩阵,即消掉下三角矩阵。
对于一个未知数 \(i\),只需要遍历 \((i,i)\) 到 \((i+m,i+2m)\) 的矩阵就行了,时间复杂度优化为 \(O(nm^3)\)。
P7016 [CERC2013]Captain Obvious and the Rabbit-Man
构造多项式
\[\begin{aligned} A(x) &=(x-F_1)(x-F_2)\cdots(x-F_k)\\ &= x^k+b_1x^{k-1}+b_2x^{k-2}+\cdots +b_k \end{aligned} \]\[A(F_i)=F_i^k+b_1F_i^{k-1}+b_2F_i^{k-2}+\cdots +b_k=0 \]对 \(i=1\to k\) 求和
\[\sum_{i=1}^kA(F_i)=\sum_{i=1}^kF_i^k+b_1\sum_{i=1}^kF_i^{k-1}+b_2\sum_{i=1}^{k}F_i^{k-2}+\cdots+b_{k-1}\sum_{i=1}^kF_i+b_kk=0 \]发现这样似乎没法用到题目给出的 \(p_i\),于是可以考虑先对 \(A(F_i)\) 乘 \(a_i\) 再求和
\[\sum_{i=1}^kA(F_i)a_i=\sum_{i=1}^kF_i^ka_i+b_1\sum_{i=1}^kF_i^{k-1}a_i+b_2\sum_{i=1}^{k}F_i^{k-2}a_i+\cdots+b_{k-1}\sum_{i=1}^kF_ia_i+b_k\sum_{i=1}^ka_i=0 \]\[\sum_{i=1}^kA(F_i)a_i=p_k+b_1p_{k-1}+b_2p_{k-2}+\cdots+b_{k-1}p_1+b_k\sum_{i=1}^ka_i=0 \]推到这里还是推不动,再在前面求和之前乘个 \(F_i\)
\[\sum_{i=1}^kA(F_i)a_iF_i=p_{k+1}+b_1p_k+b_2p_{k-1}+\cdots+b_kp_1=0 \]于是
\[p_{k+1}=-\sum_{i=1}^kb_ip_{k-i+1} \]\(O(k^2)\) 解出 \(b_i\),即可计算答案。
CF963E Circles of Waiting
\(f(x,y)\) 表示从 \((x,y)\) 出发,走到距离大于 \(R\) 的点的期望步数。
如果 \(x^2+y^2>R^2\),\(f(x,y)=0\)。
\[f(x,y)=1+f(x-1,y)p_1+f(x,y-1)p_2+f(x+1,y)p_3+f(x,y+1)p_4 \]暴力高斯消元时间复杂度为 \(O(n^6)\)。
考虑使用主元法。
将纵坐标从上到下,横坐标从左到右依次编号,取每个纵坐标最左边的横坐标为主元。
\[f(x+1,y)=\frac{f(x,y)-f(x-1,y)p_1-f(x,y-1)p_2-f(x,y+1)p_4-1}{p_3} \]可以达到 \(O(n^3)\)。
P3211 [HNOI2011]XOR和路径
按位处理。
设 \(f(u)\) 表示从 \(u\) 出发到 \(n\),这一位的异或和为 \(1\) 的概率。
\[f(u)=\sum_{u\to v}\frac{[w=0]f(v)+[w=1](1-f(v))}{deg(u)} \]注意判断自环,自环的边只能连一次。
CF895C Square Subsets
完全平方数只与质因子的奇偶有关,小于等于 \(70\) 的质数只有 \(19\) 个,因此可以把每个数分解质因数后用二进制表示。
两个数想成等价于异或,原问题等价于异或和为 \(0\) 的真子集数。
假设线性基插入的元素个数为 \(cnt\),那么答案为 \(2^{n-cnt}-1\)(线性基的基底异或一定不为 \(0\))。
P4869 albus就是要第一个出场
对于一个已经确定的线性基,新加入一个能被基底表示的数,会使得所有能被表示的数统一乘 \(2\)。
于是问题就转化为查询一个数在线性基中的排名。
P5607 [Ynoi2013] 无力回天 NOI2017
很明显是线段树 + 线性基。
但线性基无法下传标记,于是考虑差分。
设 \(a_{i-1}\oplus b_i=a_i\),每次只需要支持单点修改即可。
可以发现 \(a_{l\rightarrow r}\) 组成的线性基与,\(a_l\) 和 \(b_{l+1\rightarrow r}\) 组成的线性基相同(考虑 \(a_i\) 的定义来证明)。
于是这道题可以在 \(O(n\log n\log^2 V)\) 解决。
CF845G Shortest Path Problem?
图中的环可以任意添加,于是可以把所有环加入线性基中。
其实 \(1\) 到 \(n\) 的路径也可以任意选择,因为如果存在一条更优的路径,它会与原路径成环,一定会被加入线性基中。
CF1299D Around the World
发现边权值只达到 \(31\),爆搜发现线性基的种类只有 \(374\)。
考虑先将 \(1\) 连出去边删掉,可以得到很多连通块,沿用 CF845G 的方法,把每个连通块的环加入线性基中,如果存在一个环的权值不能加入线性基中,那么这个连通块一定不能与 \(1\) 相连。
因为不存在长度大于 \(3\) 的简单环,因此 \(1\) 向这些连通块要么连一条边,要么连两条边。
设 \(dp(i,j)\) 表示前 \(i\) 的连通块中,线性基为 \(j\) 的方案数,分类转移即可。
标签:frac,05,省选,sum,5n,线性代数,线性,复杂度,deg From: https://www.cnblogs.com/yanchengzhi/p/17002017.html