BM递推杜教版】的更多相关文章

#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…
也就是模数不是质数的时候, //下面的板子能求质数和非质数,只需要传不同的参数. #include <cstdio> #include <cstdlib> #include <cassert> #include <cstring> #include <bitset> #include <cmath> #include <cctype> #include <unordered_map> #include <…
BM求线性递推模板(杜教版) BM求线性递推是最近了解到的一个黑科技 如果一个数列.其能够通过线性递推而来 例如使用矩阵快速幂优化的 DP 大概都可以丢进去 则使用 BM 即可得到任意 N 项的数列元素 参考博客 : 暂时没有. 找到了一个.希望你能看懂吧.click here 以下是 2018 焦作网络赛 L 题 AC 代码.可做模板 #include <cstdio> #include <cstring> #include <cmath> #include <…
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(;…
题意 从数字 $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> #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…
题目链接:http://47.93.249.116/problem.php?id=2182 题目描述 河神喜欢吃零食,有三种最喜欢的零食,鱼干,猪肉脯,巧克力.他每小时会选择一种吃一包. 不幸的是,医生告诉他,他吃这些零食的时候,如果在连续的三小时内他三种都吃了,并且在中间一小时 吃的是巧克力,他就会食物中毒.并且,如果河神在连续三小时内吃到相同种类的食物,他就会不开心. 假设每种类零食的数量都是无限的,那么如果经过n小时,让河神满意的零食吃法有多少种呢?(开心又不 会食物中毒的吃法)答案可能过…
题意:计算斐波那契数列前n项和的m次方模1e9 题解: $F[i] – F[i-1] – F[i-2] = 0$ $F[i]^2 – 2 F[i-1]^2 – 2 F[i-2]^2 + F[i-3] = 0$ $F[i]^3 – 3 F[i-1]^3 – 6 F[i-2]^3 + 3 F[i-3] + F[i-4] = 0$ 可以看出,斐波那契数列的高次幂依然是可以线性递推出来的,可以推广到任意幂次的情况,具体证明参见Fibonomial Coefficient 硬套杜教bm即可. #inclu…
题目链接 题意 : 实际上可以转化一下题意 要求求出用三个不同元素的字符集例如 { 'A' .'B' .'C' } 构造出长度为 n 且不包含 AAA.BBB CCC.ACB BCA.CAC CBC 这其中任意一个字符串的方案数 分析 : 方法一 (BM 求线性递推) 直接暴力出前 10 项的答案.然后猜它其实可以由线性递推递推而来 丢进杜教的 BM 模板里面就可以直接求出第 N 项了 实际上这个可以不用猜.这种不包含某些串的题目 如果你做过类似的.就会知道实际上是可以构造出一个矩阵然后快速幂…
题目大意 有一个 \(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…