BM递推】的更多相关文章

题意 从数字 $0$ 除法,每次向前走 $i$ 步,$i$ 是 $1 \sim K$ 中等概率随机的一个数,也就是说概率都是 $\frac{1}{K}$.求落在过数字 $N$ 额概率,$N=-1$ 表示无穷远. 分析 设落在过 $i$ 的概率为 $p_i$,则 $p_i = \frac{1}{K}p_{i-1} + \frac{1}{K}p_{i-2}...+\frac{1}{K}p_{i-k}$. 以 $k=2$ 为例, $p_0 = 1 \\p_1 = \frac{1}{2} \\p_2 =…
#include <bits/stdc++.h> using namespace std; #define rep(i,a,n) for (long long i=a;i<n;i++) #define per(i,a,n) for (long long i=n-1;i>=a;i--) #define pb push_back #define mp make_pair #define all(x) (x).begin(),(x).end() #define fi first #def…
Berlekamp-Massey 算法用于求解常系数线性递推式 #include<bits/stdc++.h> typedef std::vector<int> VI; typedef long long ll; typedef std::pair<int, int> PII; const ll mod = 1000000007; ll powmod(ll a, ll b) { ll res = 1; a %= mod; assert(b >= 0); for(;…
从别的大佬处看到的模板 #include<bits/stdc++.h> #define fi first #define se second #define INF 0x3f3f3f3f #define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0) #define pqueue priority_queue #define NEW(a,b) memset(a,b,sizeof(a)) #define Pii pair<int…
也就是模数不是质数的时候, //下面的板子能求质数和非质数,只需要传不同的参数. #include <cstdio> #include <cstdlib> #include <cassert> #include <cstring> #include <bitset> #include <cmath> #include <cctype> #include <unordered_map> #include <…
题目大意 有一个 \(n\) 个点的环,你要用 \(m\) 中颜色染这 \(n\) 个点. 要求连续 \(m\) 个点的颜色不能是 $1 \sim m $ 的排列. 两种环相同当且仅当这两个环可以在旋转之后变得一模一样. 求方案数对 \({10}^9+7\) 取模的结果. \(n\leq {10}^9,m\leq 7\) 题解 考虑 polya 定理,记 \(f(n)\) 为 \(n\) 个点的答案,\(g(n)\) 为 \(n\) 个点不考虑旋转的答案.那么就有 \[ \begin{align…
题目链接:http://47.93.249.116/problem.php?id=2182 题目描述 河神喜欢吃零食,有三种最喜欢的零食,鱼干,猪肉脯,巧克力.他每小时会选择一种吃一包. 不幸的是,医生告诉他,他吃这些零食的时候,如果在连续的三小时内他三种都吃了,并且在中间一小时 吃的是巧克力,他就会食物中毒.并且,如果河神在连续三小时内吃到相同种类的食物,他就会不开心. 假设每种类零食的数量都是无限的,那么如果经过n小时,让河神满意的零食吃法有多少种呢?(开心又不 会食物中毒的吃法)答案可能过…
这里所有的内容都将有关于一个线性递推: $f_{n} = \sum\limits_{i = 1}^{k} a_{i} * f_{n - i}$,其中$f_{0}, f_{1}, ... , f_{k - 1}$是已知的. BM是用于求解线性递推式的工具,传入一个序列,会返回一个合法的线性递推式,一个$vector$,其中第$i$项表示上式的$a_{i + 1}$. CH用于快速求解常系数齐次线性递推的第$n$项,我们先会求出一个特征多项式$g$,$g$的第$k$项是$1$,其余项中第$k - i…
题意:给出,三个函数,h,b,a,然后T次询问,每次给出n,求sqrt(an); 思路:不会推,但是感觉a应该是线性的,这个时候我们就可以用BM线性递推,自己求出前几项,然后放到模板里,就可以求了. 数据范围在1e15,1000组都可以秒过. ( 那么主要的问题就是得确保是线性的,而且得求出前几项. 如果是K<1e6次多项式,我们可以用拉格朗日插值法求第N项,比如求K次方的前缀和,先放着,有空以启整理了. #include<bits/stdc++.h> using namespace s…
[模板]线性递推+BM算法 给出一个数列 \(P\) 从 \(0\) 开始的前 \(n\) 项,求序列 \(P\) 在\(\bmod~998244353\) 下的最短线性递推式,并在 \(\bmod~ 998244353\) 下输出 \(P_m\). \(m\leq 10^9,1\leq n\leq 10000\) 保证递推式最长不超过 \(5000\). Berlekamp-Massey 算法 Berlekamp-Massey 算法,常简称为 BM 算法,是用来求解一个数列的最短线性递推式的算…