摘要: ### 1.上下界网络流 #### 无源汇上下界可行流 每条边不仅有容量上界,还有容量下界,必须至少有若干流量流过。 且原图没有源点和汇点。 记 $f_0$ 为“每条边都恰好流了下界”的方案。 $f_0$ 可能不满足流量守恒。 我们记 $p_u=\sum_v f_0(u\rightarrow v)$ 阅读全文
posted @ 2023-08-01 13:45 s1monG 阅读(39) 评论(0) 推荐(0)
摘要: ### 1.生成函数 #### 1.1 定义 如果存在一个数列 $a_0,a_1,...,a_n$, 定义其普通生成函数为 $f(x)=a_0+a_1 x+a_2x^2+...=\sum_{i=0}^{\infty}a_i x^i$. 指数生成函数为 $g(x)=a_0+a_1\dfrac{x}{1 阅读全文
posted @ 2023-07-13 09:27 s1monG 阅读(42) 评论(0) 推荐(0)
摘要: 1.dp 相关 1.1 path 给定一个 \(n∗m\) 的网格,你在左下角 \((n,1)\),一开始你面向上方,你只能往前走或者右拐,障碍和走过的点不能走。 求走到 \((x,y)\) 的方案数的值,取模。 \(n,m\le 40\) 观察到一右拐,就会进入一个子矩形,并只能在这里面移动了。 阅读全文
posted @ 2023-07-11 19:08 s1monG 阅读(20) 评论(0) 推荐(0)
摘要: #### CF1174F Ehab and the Big Finale 树链剖分。 先 ```s 1``` 求出 $x$ 所在子树 $y$。 若 $y$ 为 $1$ 轻儿子,递归求解 $y$。 若 $y$ 为重儿子,那么找到重链上与 $x$ 深度相同的节点 $c$. 调用 ```d c```,此时 阅读全文
posted @ 2023-07-05 20:49 s1monG 阅读(22) 评论(0) 推荐(0)
摘要: P6811 「MCOI-02」Build Battle 建筑大师 诸如这样的序列长为 \(n\):\(1,2...,m-1,m,1,2,...,m-1,m,1,2,3\) 我们称 \(1,2,...,m-1,m\) 为一个块。 问有多少本质不同的子序列。 如果我们把每个子序列往原序列里面填,每个子序 阅读全文
posted @ 2023-07-03 14:36 s1monG 阅读(78) 评论(0) 推荐(0)
摘要: ### 1.后缀数组 #### 引入 ##### 结构 后缀数组一般由两个数组组成: $sa_i$,表示按照字典序排序第 $i$ 小的是哪个后缀。 $rk_i$,表示第 $i$ 个后缀排名第几。 有 $sa_{rk_i}=rk_{sa_i}=i$ ##### 计数排序 是一种支持排序算法,时间 $O 阅读全文
posted @ 2023-06-01 09:50 s1monG 阅读(19) 评论(0) 推荐(0)
摘要: 1.KMP 算法 引入 border 下文默认字符串从 1 开始。 \(border\) 的定义,若对于字符串 \(s\),长为 \(n\), 若存在 \(s[1,r]=s[n-r+1,n](r\not=n)\),那么称 \(r\) 为 \(s\) 的 \(border\). \(fail\) 数组 阅读全文
posted @ 2023-05-31 07:34 s1monG 阅读(276) 评论(0) 推荐(0)
摘要: 1.状态设计优化 给个例题:求最长公共子序列, 但是 \(A\) 长度为 \(n=10^6\),\(B\) 长度为 \(m=10^3\)。 \(O(nm)\) 会超时。 不妨设 \(f(i,j)\) 表示取了 \(i\) 个 B,答案是 \(j\),\(A\) 的最小长度。 这样复杂度是 \(O(m 阅读全文
posted @ 2023-05-21 20:28 s1monG 阅读(52) 评论(1) 推荐(1)
摘要: ### 1.线性 dp #### 1.1 P1412 经营与开发 由于前面的操作只会对后面乘一个系数。 所以这题需要倒着 dp。 $f(i) = \max (f(i+1)\cdot k+v,f(i+1))$ $k,v$ 分别为损耗,利益。 ### 2.区间 dp 状态通常为一个区间。 #### 2. 阅读全文
posted @ 2023-05-21 19:02 s1monG 阅读(27) 评论(1) 推荐(0)
摘要: 以 P4719【模板】动态 DP 一题为例。 我们显然可以写出朴素的方程。 考虑有 $v$ 为 $u$ 儿子。 $f_{u,0}=\sum \max(f_{v,0},f_{v,1})$ $f_{u,1}=\sum f_{v,0}$. 答案是 $\max (f_{root,0},f_{root,1}) 阅读全文
posted @ 2023-05-18 15:25 s1monG 阅读(26) 评论(0) 推荐(0)
摘要: 引入 节点由两个集合组成,且两个集合内部没有边的图。 二分图不存在长度为奇数的环。 模型 二分图最大匹配 用匈牙利算法或网络流。 换算成网络流, 二分图最大匹配 = 最大流。 二分图最小点覆盖 König 定理: 最小点覆盖:选最少的点,满足每条边至少有一个端点被选。 最小点覆盖 = 最大匹配。 换 阅读全文
posted @ 2023-05-12 19:36 s1monG 阅读(35) 评论(0) 推荐(0)
摘要: 引入 P2495 [SDOI2011] 消耗战 我们容易发现我们可以有一个 $O(nq)$ 的树形 Dp. 我们称有资源的点为关键点。有 $k$ 个。 设 $dp_u$ 表示 $u$ 子树内不连接任何关键点的最小费用。 $dp_u=dp_u+\min(dp_v,w)$,当 $v$ 非关键点。 $dp 阅读全文
posted @ 2023-05-11 21:33 s1monG 阅读(16) 评论(0) 推荐(0)
摘要: 引入 网络 是有向图。 每条边有权值 \(c(u,v)\),称为容量(Capacity)。 有两个重要的点,源点 \(s\),汇点 \(t\) 。 流 流函数 \(f\) 满足: 容量限制: \(f(u,v)\le c(u,v)\) 斜对称 : \(f(u,v)=-f(u,v)\) 流量守恒 :\( 阅读全文
posted @ 2023-05-07 21:20 s1monG 阅读(22) 评论(1) 推荐(0)
摘要: 1.最短路 引入 Dijkstra Dijkstra 是基于贪心的一种算法,适用于非负权的图,求解单源最短路。 算法是这样的: 找出全局距离最小的点 $u$,并用这个点去更新连接它的 $v$ 点的距离。 时间复杂度 $O(n^2)$,使用堆优化可以优化到 $O(m \log m)$ code pri 阅读全文
posted @ 2023-05-07 19:06 s1monG 阅读(15) 评论(0) 推荐(0)
摘要: ### 1.逆元 #### 引入 我们知道在同余系里面加,减,乘都是可以直接完成。 但是不能除。 我们要想在模 $p$ 意义下除以一个数,就可以乘这个数的逆元。 这个数记作 $x^{-1}$. 满足 $x \cdot x^{-1} \equiv 1 \pmod p$ 线性求 $1\sim n$ 逆元 阅读全文
posted @ 2023-04-23 21:01 s1monG 阅读(33) 评论(0) 推荐(0)