simpson
1 | double work(double L,double R){ |
三分
1 | while (fabs(lx - rx) > eps || fabs(ly - ry) > eps) { |
随机增量
1 | const int maxn=1e5+100; |
高斯消元
1 | const int maxn=1700; |
倍增求lca
1 | int f[maxn][20]; |
On求图上所有点的最远点对
1 | const int maxn=2e5 + 100; |
树上主席树
1 | const int maxn=1e5 + 100; |
树剖
1 | const int maxn=3e5+100; |
模拟退火
1 | double minn = 99999999999999999LL; |
2 sat
1 | // A,B不能同时取,连边A→B’,B→A’ |
1 | const int maxn=1e4+100; |
tarjan缩点
1 | for (int i = 1; i <= n; i++) { |
点分
1 | const int maxn=2e4 + 100; |
匈牙利算法
1 | // 二分图最大独立集(点数-最大匹配数) |
极角排序+叉积
1 | const int maxn=4000; |
逆元
1 | void exgcd(ll a, ll b, ll& d, ll&x, ll& y) { |
矩阵快速幂
1 | const int maxn=1e6+100; |
dinic
1 | const int maxn=6e4; |
spfa 费用流
1 | const int maxn=2000; |
线性基
1 | for (int i=0; i<n; i++) { |
线性基的交
1 | uint x[32], y[32]; |
rope
1 | const int maxn=2e6+100; |
后缀自动机
1 | // 广义sam,last置为1,然后插入新串, ed置为串id |
回文树
1 | // fail[i]表示以此节点位结尾,较短的回文串 |
支配树
1 | // DAG上点对的LCA |
二次同余方程
1 | const int mod=1e9+9; |
连分数
1 | // a1/b1 <= den/num <= a2/b2 |
SG
1 | int getSg(int n) { |
输入挂
1 | char buf[100000],*p1=buf,*p2=buf; |
原根
在$(a,m)=1$时,定义a对模m的指数 $\delta m(a)$为使$a^d \equiv 1 \pmod{m}$ 成立的最小的正整数d
若 $\delta m(a)=\varphi(m)$, 则称a是模m的原根
素数p的原根个数为 $\varphi(p-1)$
指标:当确定模p和原根g时,定义a的指标为$I(a)$为使$g^d \equiv a \pmod p$成立的最小的正整数d
指标性质: $I(ab) \equiv I(a)+I(b) \pmod {p-1}$, $I(a^k) \equiv kI(a) \pmod {p-1}$
找$m$的原根:将$\varphi(m)$因数分解,即$\varphi(m)=p_1^{k_1}p_2^{k_2}……p_n^{k_n}$如果一个数$g$是模$m$的原根,则其必然满足对于任意一个$1\leq i\leq n, g^{\frac {\varphi(m)} {p_i}}≠1(mod\ m)$
1 | // 素数的原根 |
蔡勒公式
1 | int getWeek(int y, int m, int d) { |
公式
$$ {\sum_{m|n}φ(m)}=n $$
$$ φ^2(n)=φ(n^2) $$
$$ 1^2+2^2+3^2+…+n^2=n(n+1)(2n+1)\div 6 $$
$$ 1^3+2^3+3^3+…+n^3=n^2(n+1)^2\div 4 $$
$$ \sum_{i|n} \mu(i) =[n==1] $$
$$ \sum_i^{n} [{gcd(i,n)=1}]=nphi(n)\div 2 $$
$$ \sum_{i=1}^{n}(i[gcd(n, i)=1])=i\phi(i)\div 2+[i=1] $$
$$ F(n)=\sum_{d|n}f(d) => f(n)=\sum_{d|n}F(d)\mu(\frac{n}{d}) $$
$$ lucas(n, m, p) = C(n%p, m%p)lucas(n/p, m/p, p) $$
$$ C_n^m % p=\prod{C_{n_i}^{m_i}}%p,m=\sum{m_ip^i},n=\sum{n_ip^i} $$
$$ h(n)=h(n-1)(4*n-2)/(n+1) $$
$$ h(n)=C_{2n}^n/(n+1) $$
$$ h(n)=C_{2n}^n-C_{2n}^{n+1} $$
$$ gcd(Fib[a],Fib[b])=Fib[gcd(a,b)] $$
$$ gcd(a^i-1,a^j-1)=a^{gcd(i, j)}-1 $$
$$ 球缺:用平面截取球的一部分 $$
$$ 球缺面积 = 2 \cdot \pi h $$
$$ 球缺体积 = \pi \cdot h^2 \cdot (R - \frac{h}{3}) $$
$$ w=\left(y+\lfloor {\frac {y}{4}}\rfloor+\lfloor{\frac {c}{4}}\rfloor-2c+\lfloor{\frac {26(m+1)}{10}}\rfloor+d-1\right){\bmod {7}} $$
$$ w:星期; c:年份前两位数; y:年份后两位数;m:月,某年的1、2月要看作上一年的13、14月来计算; d:日 $$