Loading docs/dp/optimizations/knuth-yao-quadrangle-inequality.md +2 −2 Original line number Diff line number Diff line Loading @@ -195,7 +195,7 @@ void DP(int l, int r, int k_l, int k_r) { 使用递归树的方法,容易分析出该分治算法的复杂度为 $O(n\log n)$,因为递归树每一层的决策区间总长度不超过 $2n$,而递归层数显然为 $O(\log n)$ 级别。 #### 例题 1. 「BZOJ2216」「POI2011」Lightning Conductor #### 例题 1. [「loj2157」「POI2011」Lightning Conductor](https://loj.ac/problem/2157) 题目大意:给定一个长度为 $n\leq 500000$ 的序列 $a_1, a_2, \cdots, a_n$,要求对于每一个 $1 \leq r \leq n$,找到最小的非负整数 $f_{r}$ 满足 Loading Loading @@ -263,7 +263,7 @@ $$ 回顾例题 1 中的 $w(l, r) = -a_l - \sqrt{r-l} + a_r$,由性质 2 可知 $-a_l+a_r$ 满足四边形不等式,而 $r-l$ 满足四边形恒等式和区间包含单调性。再根据 $-\sqrt{x}$ 的凸性以及性质 4 可知 $-\sqrt{r-l}$ 也满足四边形不等式,最终利用性质 1,即可得出 $w(l, r)$ 满足四边形不等式性质了。 #### 例题 2. 「BZOJ1010」「HNOI2008」玩具装箱toy #### 例题 2. [「BZOJ1010」「HNOI2008」玩具装箱toy](https://www.lydsy.com/JudgeOnline/problem.php?id=1010) 题目大意:有 $n$ 个玩具需要装箱,要求每个箱子中的玩具编号必须是连续的。每个玩具有一个长度 $C_i$,如果一个箱子中有多个玩具,那么每两个玩具之间要加入一个单位长度的分隔物。形式化地说,如果将编号在 $[l,r]$ 间的玩具装在一个箱子里,那么这个箱子的长度为 $r-l+\sum_{k=l}^r C_k$。现在需要制定一个装箱方案,使得所有容器的长度与 $K$ 差值的平方之和最小。 Loading docs/dp/state.md +13 −3 Original line number Diff line number Diff line Loading @@ -2,11 +2,11 @@ (建议学习[位运算](/math/bit/)部分的内容) ### 状压 DP 简介 ## 状压 DP 简介 状压 dp 是动态规划的一种,借由将状态压缩(通常压缩为某整形)以达到节约空间和时间的目的 #### 常用格式 ### 常用格式 ```cpp int maxn = 1 << n; //规定状态的上界 Loading @@ -26,7 +26,7 @@ for (int i = 2; i <= 层数(dp上界); i++) { for (int i = 1; i <= top; i++) ans += dp[上界][Type[i]]; ``` #### 典型例题 ### 典型例题 [\[USACO06NOV\]玉米田 Corn Fields](https://www.luogu.org/problemnew/show/P1879) Loading @@ -37,3 +37,13 @@ for (int i = 1; i <= top; i++) ans += dp[上界][Type[i]]; 具体实现方法同上方伪代码 [例题代码](https://www.luogu.org/paste/kto3ua68) ### 几道练习题 [NOI2001 炮兵阵地](https://www.luogu.org/problemnew/show/P2704) [SCOI2005 互不侵犯](https://www.lydsy.com/JudgeOnline/problem.php?id=1087) [AHOI2009 中国象棋](https://www.lydsy.com/JudgeOnline/problem.php?id=1801) [九省联考2018 一双木棋](https://www.luogu.org/problemnew/show/P4363) docs/graph/euler.md +6 −0 Original line number Diff line number Diff line Loading @@ -57,3 +57,9 @@ 这样的 $D$ 是连通的,且每个顶点入度等于出度(均等于 $m$ ),所以 $D$ 是有向欧拉图。 任求 $D$ 中一条欧拉回路 $C$ ,取 $C$ 中各边的最后一个字母,按各边在 $C$ 中的顺序排成圆形放在圆盘上即可。 ## 练习题 [「洛谷 1341」无序字母对](https://www.luogu.org/problemnew/show/P1341) [「洛谷 2731」骑马修栅栏](https://www.luogu.org/problemnew/show/P2731) docs/math/bignum.md +1 −1 Original line number Diff line number Diff line Loading @@ -648,7 +648,7 @@ $$ } ``` !!! " 关于 `new` 和 `delete` " ??? " 关于 `new` 和 `delete` " 见[内存池](/intro/common-tricks/#_4)。 Loading docs/math/poly/inv.md +1 −1 Original line number Diff line number Diff line Loading @@ -71,4 +71,4 @@ $$T\left(n\right)=T\left(\frac{n}{2}\right)+O\left(n\log{n}\right)=O\left(n\log{ ## Examples 1. 有标号简单无向连通图计数:「BZOJ 3456」城市规划 1. 有标号简单无向连通图计数:[「poj 1737」Connected Graph](http://poj.org/problem?id=1737) Loading
docs/dp/optimizations/knuth-yao-quadrangle-inequality.md +2 −2 Original line number Diff line number Diff line Loading @@ -195,7 +195,7 @@ void DP(int l, int r, int k_l, int k_r) { 使用递归树的方法,容易分析出该分治算法的复杂度为 $O(n\log n)$,因为递归树每一层的决策区间总长度不超过 $2n$,而递归层数显然为 $O(\log n)$ 级别。 #### 例题 1. 「BZOJ2216」「POI2011」Lightning Conductor #### 例题 1. [「loj2157」「POI2011」Lightning Conductor](https://loj.ac/problem/2157) 题目大意:给定一个长度为 $n\leq 500000$ 的序列 $a_1, a_2, \cdots, a_n$,要求对于每一个 $1 \leq r \leq n$,找到最小的非负整数 $f_{r}$ 满足 Loading Loading @@ -263,7 +263,7 @@ $$ 回顾例题 1 中的 $w(l, r) = -a_l - \sqrt{r-l} + a_r$,由性质 2 可知 $-a_l+a_r$ 满足四边形不等式,而 $r-l$ 满足四边形恒等式和区间包含单调性。再根据 $-\sqrt{x}$ 的凸性以及性质 4 可知 $-\sqrt{r-l}$ 也满足四边形不等式,最终利用性质 1,即可得出 $w(l, r)$ 满足四边形不等式性质了。 #### 例题 2. 「BZOJ1010」「HNOI2008」玩具装箱toy #### 例题 2. [「BZOJ1010」「HNOI2008」玩具装箱toy](https://www.lydsy.com/JudgeOnline/problem.php?id=1010) 题目大意:有 $n$ 个玩具需要装箱,要求每个箱子中的玩具编号必须是连续的。每个玩具有一个长度 $C_i$,如果一个箱子中有多个玩具,那么每两个玩具之间要加入一个单位长度的分隔物。形式化地说,如果将编号在 $[l,r]$ 间的玩具装在一个箱子里,那么这个箱子的长度为 $r-l+\sum_{k=l}^r C_k$。现在需要制定一个装箱方案,使得所有容器的长度与 $K$ 差值的平方之和最小。 Loading
docs/dp/state.md +13 −3 Original line number Diff line number Diff line Loading @@ -2,11 +2,11 @@ (建议学习[位运算](/math/bit/)部分的内容) ### 状压 DP 简介 ## 状压 DP 简介 状压 dp 是动态规划的一种,借由将状态压缩(通常压缩为某整形)以达到节约空间和时间的目的 #### 常用格式 ### 常用格式 ```cpp int maxn = 1 << n; //规定状态的上界 Loading @@ -26,7 +26,7 @@ for (int i = 2; i <= 层数(dp上界); i++) { for (int i = 1; i <= top; i++) ans += dp[上界][Type[i]]; ``` #### 典型例题 ### 典型例题 [\[USACO06NOV\]玉米田 Corn Fields](https://www.luogu.org/problemnew/show/P1879) Loading @@ -37,3 +37,13 @@ for (int i = 1; i <= top; i++) ans += dp[上界][Type[i]]; 具体实现方法同上方伪代码 [例题代码](https://www.luogu.org/paste/kto3ua68) ### 几道练习题 [NOI2001 炮兵阵地](https://www.luogu.org/problemnew/show/P2704) [SCOI2005 互不侵犯](https://www.lydsy.com/JudgeOnline/problem.php?id=1087) [AHOI2009 中国象棋](https://www.lydsy.com/JudgeOnline/problem.php?id=1801) [九省联考2018 一双木棋](https://www.luogu.org/problemnew/show/P4363)
docs/graph/euler.md +6 −0 Original line number Diff line number Diff line Loading @@ -57,3 +57,9 @@ 这样的 $D$ 是连通的,且每个顶点入度等于出度(均等于 $m$ ),所以 $D$ 是有向欧拉图。 任求 $D$ 中一条欧拉回路 $C$ ,取 $C$ 中各边的最后一个字母,按各边在 $C$ 中的顺序排成圆形放在圆盘上即可。 ## 练习题 [「洛谷 1341」无序字母对](https://www.luogu.org/problemnew/show/P1341) [「洛谷 2731」骑马修栅栏](https://www.luogu.org/problemnew/show/P2731)
docs/math/bignum.md +1 −1 Original line number Diff line number Diff line Loading @@ -648,7 +648,7 @@ $$ } ``` !!! " 关于 `new` 和 `delete` " ??? " 关于 `new` 和 `delete` " 见[内存池](/intro/common-tricks/#_4)。 Loading
docs/math/poly/inv.md +1 −1 Original line number Diff line number Diff line Loading @@ -71,4 +71,4 @@ $$T\left(n\right)=T\left(\frac{n}{2}\right)+O\left(n\log{n}\right)=O\left(n\log{ ## Examples 1. 有标号简单无向连通图计数:「BZOJ 3456」城市规划 1. 有标号简单无向连通图计数:[「poj 1737」Connected Graph](http://poj.org/problem?id=1737)