- 博客(158)
- 收藏
- 关注
原创 一些有用的数学结论(持续更新)
1.染色问题(1).环染色问题①公式: f(m)=(−1)m∗(n−1)+(n−1)mf(m)=(-1)^m*(n-1)+(n-1)^mf(m)=(−1)m∗(n−1)+(n−1)m②证明:
2020-10-06 13:27:24 573
原创 各种算法模板
离散化1.#include <iostream>#include <algorithm>using namespace std;const int MAXN = 1005;int n;int rev[MAXN], a[MAXN];int main() { cin >> n; for(int i = 1; i <= n; i++) cin >> a[i], rev[i] = a[i]; sort(rev + 1, rev + 1
2020-07-26 20:13:01 408
原创 树上竞技题解
Fxi1∑⌊2m⌋ixm−in−xii⌊2m⌋1∑mixm−in−xm−ii1∑⌊2m⌋ixi−1x−1m−in−xii⌊2m⌋1∑mixm−i−1n−x−1m−in−xm−ii1∑⌊2m⌋xi−1x−1m−in。
2023-10-24 21:44:04 92
原创 生成随机数模板
#include <bits/stdc++.h>using namespace std;int bak[10000];int main () { mt19937 e (time (0)); uniform_int_distribution <int> u (-10, 10);//均匀 int// uniform_real_distribution <double> u (-10, 10);//均匀 double// bernoulli_distribut
2022-05-26 15:59:22 171
原创 「SCOI2011」飞镖
一、前言[和谐美好]选择结构题二、题解一眼做法,枚举系数,然后解线性方程。然后就贼[和谐美好]难打。考虑三个飞镖都扔完 (两个乃至一个就懒得讲了,就是允许部分变量为零)第一个 {}\{ \}{} 里的东西是系数序列,第二个 {}\{ \}{} 里的东西是自变量上确界序列(下确界都是 111)case 1: 只有一种系数,且一定有一个 2m2m2m。{2m,i,i}\{ 2m, i, i \}{2m,i,i} {1,k,k}\{ 1, k, k \}{1,k,k}case 2: 只有两
2022-03-29 22:04:02 473
原创 扩展中国剩余定理模板(EXCRT)
struct Node { LL m, b;};struct ExCrt { int n; Node a[Maxk + 5]; LL exgcd (LL x, LL y, LL &a, LL &b) { if (y == 0) { a = 1, b = 0; return x; } LL tmp = exgcd (y, x % y, b, a);
2022-03-24 16:11:58 382
原创 面试的考验
一、前言神仙题目二、题解30pts30pts30pts:考虑枚举右端点 rrr。建立一颗答案线段树 ATreeATreeATree,线段树的 iii 号节点表示 min(a[j]−a[i])(i≤j≤r,a[j]>a[i])\min (a[j] - a[i]) (i \leq j \leq r,a[j] > a[i])min(a[j]−a[i])(i≤j≤r,a[j]>a[i])。有一个朴素做法,就是枚举所有满足要求的 jjj, 然后更新。(甚至不需要线段树,这里加上线段树是
2022-03-15 22:22:18 485 1
原创 LCT 模板
const int MaxLct = 2 * 1e5;#define ls(p) (Tr[p].ch[0])#define rs(p) (Tr[p].ch[1])#define fa(p) (Tr[p].fa)#define rev(p) (Tr[p].rev)struct Node { int rev; int ch[2], fa;};struct Link_Cut_Tree { Node Tr[MaxLct + 5]; int st[MaxLct + 5]
2022-03-11 21:11:22 276
原创 两只繁殖场狗狗如何度过她的九年
∑i=12n−1(nfi)=∑i=1n(ni)2n−i=∑i=1n(ni)2n−i组合意义,3种颜色染色。=3n−2n\begin{aligned}\sum_{i = 1}^{2^n - 1} \binom{n}{f_i} &= \sum_{i = 1}^{n} \binom{n}{i} 2^{n - i}\\&= \sum_{i = 1}^{n} \binom{n}{i}2^{n - i}\\组合意义,3种颜色染色。\\&= 3^{n} - 2^{n}\end{a
2022-03-07 15:02:11 222
原创 【学习笔记】可持久化并查集
1.算法用主席树维护 fafafa 和 depthdepthdepth 数组,其他的和并查集只用按秩合并一模一样。2.模板#define ls (Tr[p].ch[0])#define rs (Tr[p].ch[1])#define fap (Tr[p].fa)#define depthp (Tr[p].depth)#define valp (Tr[p].val)struct Node { int fa, depth, ch[2]; int val;};struct Persis
2022-03-01 22:09:51 418
原创 【学习笔记】杜教筛
莫比乌斯求和ϵ(n)={1,n=10,n≠1I(n)=1ϵ(n)=∑i∣nμ(i)×I(ni)∑i=1nϵ(i)=∑i=1n∑d∣iμ(d)×I(id)=∑i=1nI(i)×Q(⌊ni⌋)I(1)×Q(n)=∑i=1nϵ(i)−∑i=2nI(i)×Q(⌊ni⌋)\begin{aligned}\epsilon (n) &= \begin{cases} 1, n = 1\\0,n \neq 1 \end{cases}\\I (n) &= 1\\\epsilon (n) &=
2022-02-18 19:13:30 338 1
原创 【学习笔记】CDQ
CDQCDQCDQ 分治,类似于归并排序,大体思路为:将需要求解的询问区间 [l,r][l, r][l,r] 分为 [l,mid],[mid+1,r][l, mid], [mid + 1, r][l,mid],[mid+1,r] 然后分别求解只在这两个区间中的,再求解 i∈[l,mid],j∈[mid+1,r]i \in [l, mid],j\in[mid + 1, r]i∈[l,mid],j∈[mid+1,r] 的贡献。三位偏序(陌上花开)模板,见注释。//author : LH 鈥斺€擶ho j
2022-02-12 09:09:51 742
原创 【学习笔记】狄利克雷卷积
基本形式f,gf,gf,g 函数卷起来写作 f∗g(n)f * g (n)f∗g(n),等于 ∑d∣nf(d)g(nd)\sum_{d \mid n} f (d) g (\frac{n}{d})∑d∣nf(d)g(dn)性质:若 f,gf, gf,g 都为(完全)积性函数,那么 f∗gf * gf∗g 也为(完全)积性函数。f∗g=g∗ff * g = g * ff∗g=g∗f (交换律)f∗g∗q=f∗(g∗q)f * g * q = f * (g * q)f∗g∗q=f∗(g∗q) (结
2022-02-11 17:49:36 341
原创 【学习笔记】莫比乌斯反演
原式:f(n)=∑d∣nF(d)⇒F(n)=∑d∣nμ(nd)f(d)\begin{aligned}f (n) &= \sum_{d \mid n} F (d)\\\Rightarrow F (n) &= \sum_{d \mid n} \mu (\frac{n}{d}) f (d)\end{aligned}f(n)⇒F(n)=d∣n∑F(d)=d∣n∑μ(dn)f(d)证明:F(n)=∑d∣nμ(nd)∑p∣dF(p)令t=dp=∑p∑t∣npμ(ntp)F(p
2022-02-10 14:19:42 742 1
原创 harbingers 题解
该死,怎么这么强。pre[i]pre[i]pre[i] 表示 iii 号点到根节点的距离,用的是手写栈。dp[i]=dp[j]+s[i]+(pre[i]−pre[j])∗v[i]dp[i]=dp[j]+s[i]+pre[i]∗v[i]−pre[j]∗v[i]−dp[j]=−pre[j]∗v[i]+s[i]+pre[i]∗v[i]−dp[i]dp[j]=pre[j]∗v[i]−s[i]−pre[i]∗v[i]+dp[i]y=dp[j],k=v[i],x=pre[j],b=dp[i]−s[i]−pre[i
2022-02-09 16:23:06 111 1
原创 后缀数组模板
const int Maxn = 2 * 1e5;const int Inf = 0x3f3f3f3f;int sa[Maxn + 5], id_bak[Maxn + 5];//sa[i] len + 1 ~ 2 * len 排名为 i 的串的编号//id_bak[i] 编号为 i 的串该被放进哪个桶 int sort_id[Maxn + 5], poi_bak[Maxn + 5];//sort_id[i] 按照 len + 1 ~ 2 * len 排序的排名为 i 的串的编号 //poi_
2022-01-24 21:30:58 230
原创 阿狸的打字机
#include <map>#include <cmath>#include <queue>#include <vector>#include <cstdio>#include <cstdlib> #include <cstring>#include <iostream>#include <algorithm>using namespace std;#define fi first
2022-01-24 09:50:57 187 2
原创 ac自动机模板
const int Maxn = 1e6;const int Maxkind = 26;struct Ac_Automata { int cnt; int End[Maxn + 5]; int Tire[Maxkind + 5][Maxn + 5]; int dout[Maxn + 5]; void Init () { memset (dout, 0, sizeof dout); memset (Tire, 0, sizeof Tire);
2022-01-23 14:28:43 241
原创 Visit of the Great
1.前言真好玩,蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤2.题解令G(x)={1,2∣x2,2∤xgcd(k2i+1,k2i+1+1)=gcd(k2i+1,k2i+1−k2i)=gcd(k2i+1,k2i×(k2i−1))=gcd(k2i+1,k2i−1)=gcd((k2i+1)−(k2i−1),k2i−1)=gcd(2,k2i−1)=G(k)\begin{aligned}令 G (x) = \begin{cases} 1, 2 \mid x \\ 2, 2 \nmid x \end{cases}\\g
2022-01-11 21:15:21 622 11
原创 最大流模板
const int Maxn = 1e5;const int Maxm = 1e5;const LL Inf = 0x3f3f3f3f;struct edge { int to[Maxm * 2 + 5], Next[Maxm * 2 + 5]; LL val[Maxm * 2 + 5]; int len, Head[Maxn + 5]; edge () { len = 1; memset (Head, 0, sizeof Head); } void Init ()
2022-01-08 11:53:46 203
原创 「学习笔记」最小费用流最大流_势函数+dij
一、背景dijkstradijkstradijkstra 不能处理负边权,比如这个图就会挂掉。它的过程是 1→2,1→31 \rightarrow 2, 1 \rightarrow 31→2,1→3,然后就结束了。为了处理有负权的图,我们要想一个优秀的东西去解决它。...
2022-01-06 14:35:51 668 1
原创 费用流模板
#include <cmath>#include <queue>#include <vector>#include <cstdio>#include <cstdlib> #include <cstring>#include <iostream>#include <algorithm>using namespace std;#define fi first#define se second#d
2022-01-04 15:10:55 282
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人