
BM算法
zxyoi_dreamer
退役了退役了爬了爬了,搞个锤子算法竞赛,不如好好享受大学生活。
展开
-
【模板】BM算法
贴个板子,没有题解。其实构造线性递推式的做法真的挺简单,真正扯淡的是证明BM求出的确实是最短线性递推式。TMD为什么是最短,我也不会证,暂时只能感性理解。代码:#include<bits/stdc++.h>#define ll long long#define re register#define gc get_char#define cs constnamesp...原创 2019-08-09 14:01:31 · 311 阅读 · 0 评论 -
【HDU6172】Array Challenge(BM算法)(线性递推)
传送门猜想有线性递推式,然后直接用BM算法切掉了。代码:#include<bits/stdc++.h>#define ll long long #define re register#define cs constcs int mod=1e9+7;inline int add(int a,int b){return (a+=b)>=mod?a-mod:a;}...原创 2019-08-09 18:42:12 · 308 阅读 · 0 评论 -
【CodeChef-TREEWALK】Walk on Tree(BM算法)(特征多项式)
传送门题解:首先由于求的是恰好KKK次,所以直接矩阵快速幂的做法大家应该都会我们发现实际上就是求矩阵中一些位置的和。然后这玩意居然有递推式,而且对于所有位置,这个递推式是相同的!而且这个递推式其实就是矩阵的特征多项式。为什么,其实很简单,考虑我们直接做线性递推用的其实就是递推矩阵的特征多项式,而由凯莱-哈密顿定理,一个矩阵的特征多项式是一个零化多项式。设S(A)S(A)S(A)表示...原创 2019-08-09 20:42:11 · 545 阅读 · 0 评论 -
【NOI2007】【BZOJ1494】【洛谷P2109】【LOJ2356】生成树计数(矩阵树)(BM)(多项式取模优化线性递推)
LOJ传送门题解:很显然地,这个肯定存在线性递推式,通过矩阵树暴力+BM算法我们知道 K=5的时候的递推式也才长度46,直接求出递推式后线性递推就行了。代码:#include<bits/stdc++.h>#define ll long long#define re register#define gc get_char#define cs constusing ...原创 2019-08-10 19:28:40 · 321 阅读 · 0 评论 -
【LOJ2463】「2018 集训队互测 Day 1」完美的旅行(BM算法)(多项式求逆)(FMT)
传送门题解:显然我们的想法是对所有集合算出它的超集的答案然后FMT回去。发现转移是一个矩阵乘法的形式,显然有线性递推式。直接用BM求出线性递推式可以算出走单次kkk步,愉悦值为iii的方案数。然后FMT得到单次走kkk步,愉悦值为iii的超集的方案数,记为g(i,k)g(i,k)g(i,k),设其OGF为Gi(x)G_i(x)Gi(x)。现在需要求总共走kkk步,愉悦值为iii的超...原创 2019-08-30 16:18:58 · 371 阅读 · 0 评论