Skip to content

Commit

Permalink
chore: tiny change
Browse files Browse the repository at this point in the history
  • Loading branch information
Tiphereth-A committed May 23, 2024
1 parent 90b23c4 commit a3bf763
Show file tree
Hide file tree
Showing 20 changed files with 76 additions and 89 deletions.
12 changes: 9 additions & 3 deletions ICPCnotebook.cls
Original file line number Diff line number Diff line change
Expand Up @@ -106,20 +106,26 @@
\setlength{\cftsecnumwidth}{3em}

\RequirePackage{fancyhdr}
\RequirePackage[inner=2cm, outer=1cm, top=1.7cm, bottom=0.5cm]{geometry}
\RequirePackage[inner=2cm, outer=0.9cm, top=1.7cm, bottom=0.0cm]{geometry}

\setlength{\headsep}{0.1cm}
\setlength{\footskip}{0.7cm}

\fancypagestyle{fancy} {
\fancyhead[L]{\nouppercase\leftmark}
\fancyhead[R]{\nouppercase\rightmark}
\fancyfoot[C]{\thepage}
\fancyhead[C]{\thepage}
\fancyfoot{}
}

\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0.5pt}

\RequirePackage{titlesec}
\titlespacing*{\section}{0pt}{0.6ex}{0.6ex}
\titlespacing*{\subsection}{0pt}{0.6ex}{0.6ex}
\titlespacing*{\subsubsection}{0pt}{0.6ex}{0.6ex}
\titlespacing*{\paragraph}{0pt}{0.6ex}{0.6ex}

% Code style
\RequirePackage{minted}
Expand All @@ -132,7 +138,7 @@
breakanywhere,
baselinestretch=0.9,
tabsize=2,
fontsize=\normalsize,
fontsize=\footnotesize,
frame=single,
framesep=0.8mm,
framerule=0.3pt,
Expand Down
4 changes: 2 additions & 2 deletions config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -378,10 +378,10 @@ notebook:
- cnt_intp_po: 多边形整点计数
code_ext: hpp
test_ext: cpp
- femwebp: Fermat--Weber 点
- femwebp: 点集的 Fermat--Weber 点
code_ext: hpp
test_ext: cpp
- massp: 重心
- massp: 点集的重心
code_ext: hpp
test_ext: cpp
- rel_cc: 两圆的关系
Expand Down
5 changes: 2 additions & 3 deletions notebook.tex
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
%-*- coding: utf-8 -*-

\documentclass{ICPCnotebook}
\documentclass[10pt]{ICPCnotebook}
%\usepackage[UTF8]{ctex}

\title{\vspace{-4ex}\Large{ICPC Notebook}}
Expand All @@ -12,8 +12,7 @@

\pagestyle{plain}

\pagenumbering{roman}
\setcounter{page}{1}
\pagenumbering{gobble}

\paragraph{项目地址} \url{https://github.com/Tiphereth-A/CP-lib}

Expand Down
9 changes: 4 additions & 5 deletions src/doc_tex/comb/ball_box_iia.tex
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,10 @@

\[
\begin{aligned}
& F_m(x) =\sum_{i=0}^{\infty}f(i,m)x^i =F_{m-1}(x)+x^m F_m(x) \\
\implies & F_m(x)=\frac{1}{1-x^m}F_{m-1}(x) \\
\implies & F_m(x)=\prod_{i=1}^{\infty}\frac{1}{1-x^i} \\
\implies & \ln F_m(x)=-\sum_{i=1}^{\infty}\ln(1-x^i) \\
\implies & \ln F_m(x)=\sum_{i=1}^{\infty}\sum_{j=1}^{\infty} \frac{x^{ij}}{j} \\
& F_m(x) =\sum_{i=0}^{\infty}f(i,m)x^i =F_{m-1}(x)+x^m F_m(x) \\
\implies & F_m(x)=\frac{1}{1-x^m}F_{m-1}(x) \\
\implies & F_m(x)=\prod_{i=1}^{\infty}\frac{1}{1-x^i} \\
\implies & \ln F_m(x)=-\sum_{i=1}^{\infty}\ln(1-x^i) =\sum_{i=1}^{\infty}\sum_{j=1}^{\infty} \frac{x^{ij}}{j} \\
\implies & F_m(x)=\exp\left(\sum_{i=1}^{\infty}\sum_{j=1}^{\infty} \frac{x^{ij}}{j}\right)
\end{aligned}
\]
Expand Down
9 changes: 7 additions & 2 deletions src/doc_tex/ds/link_cut_tree.tex
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@

但可以对于每个点维护一个平衡树 (set), 来存储其子树最值

\item 对于维护边权 (生成树), 可以化边为点将大小为 \(n\) 的树化成大小为 \(2n - 1\) 的树, 其中 \(n\) 个点无点权, \(n-1\) 个点的点权存边权
\item 对于维护双连通分量, 在 link 时如果连接失败 (产生了环, 且将返回 false), 在返回前将这个环缩成一个点, 可以用并查集维护
\item 对于维护边权 (生成树), 可以化边为点将大小为 \(n\) 的树化成大小为 \(2n - 1\) 的树,

其中 \(n\) 个点无点权, \(n-1\) 个点的点权存边权

\item 对于维护双连通分量, 在 link 时如果连接失败 (产生了环, 且将返回 false), 在返回前将这个环缩成一个点,

可以用并查集维护
\end{itemize}
16 changes: 8 additions & 8 deletions src/doc_tex/ds/segtree_ctor.tex
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
\begin{itemize}
\item \verb|segtl_addmax_ctor|: 区间加, 区间最大值
\item \verb|segtl_addmin_ctor|: 区间加, 区间最小值
\item \verb|segtl_addsum_ctor|: 区间加, 区间和
\item \verb|segtl_setmax_ctor|: 区间赋值, 区间最大值
\item \verb|segtl_setmin_ctor|: 区间赋值, 区间最小值
\item \verb|segtl_setsum_ctor|: 区间赋值, 区间和
\end{itemize}
\begin{multicols}{2}
\verb|segtl_addmax_ctor|: 区间加, 区间最大值 \\
\verb|segtl_addmin_ctor|: 区间加, 区间最小值 \\
\verb|segtl_addsum_ctor|: 区间加, 区间和 \\
\verb|segtl_setmax_ctor|: 区间赋值, 区间最大值 \\
\verb|segtl_setmin_ctor|: 区间赋值, 区间最小值 \\
\verb|segtl_setsum_ctor|: 区间赋值, 区间和
\end{multicols}
24 changes: 17 additions & 7 deletions src/doc_tex/ds/trie01.tex
Original file line number Diff line number Diff line change
@@ -1,9 +1,19 @@
支持可持久化

\verb|add(bit, val, idx, xor_val)|: 先将当前 Trie 树包含的所有路径临时异或 \verb|xor_val|, 之后将 \verb|bit| 对应路径上所有点权均加 \verb|val|. 先将当前 Trie 树包含的所有路径临时异或 \verb|xor_val|, 之后若 \verb|idx| 不为 \(-1\) 则在所有匹配结点的 \verb|idxs| 里加入 \verb|idx|.

\verb|find(bit, xor_val)|: 先将当前 Trie 树包含的所有路径临时异或 \verb|xor_val|, 之后返回 \verb|bit| 的匹配结点编号, 未找到则返回 \(0\).

\verb|kth_element(k, xor_val)|: 先将当前 Trie 树包含的所有路径临时异或 \verb|xor_val|, 之后返回所有结点中第 \(k\) 小 (最小: \verb|0|; 最大: \verb|data[root].val - 1|) 的路径与编号.

\verb|count_less(bit, xor_val)|: 先将当前 Trie 树包含的所有路径临时异或 \verb|xor_val|, 之后返回小于 \verb|bit| 的路径构成子树点权和.
\begin{itemize}
\item \verb|add(bit, val, idx, xor_val)|: 先将当前 Trie 树包含的所有路径临时异或 \verb|xor_val|,

之后将 \verb|bit| 对应路径上所有点权均加 \verb|val|, 同时若 \verb|idx| 不为 \(-1\) 则在所有匹配结点的 \verb|idxs| 里加入 \verb|idx|.

\item \verb|find(bit, xor_val)|: 先将当前 Trie 树包含的所有路径临时异或 \verb|xor_val|,

之后返回 \verb|bit| 的匹配结点编号, 未找到则返回 \(0\).

\item \verb|kth_element(k, xor_val)|: 先将当前 Trie 树包含的所有路径临时异或 \verb|xor_val|,

之后返回所有结点中第 \(k\) 小 (最小: \verb|0|; 最大: \verb|data[root].val - 1|) 的路径与编号.

\item \verb|count_less(bit, xor_val)|: 先将当前 Trie 树包含的所有路径临时异或 \verb|xor_val|,

之后返回小于 \verb|bit| 的路径构成子树点权和.
\end{itemize}
2 changes: 1 addition & 1 deletion src/doc_tex/game/npuzzle_data.tex
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
用于求解 \(N\)-puzzle \(N=k^2-1,~k\in\mathbb{N}_{>2}\) 的数据类.

\(N\)-puzzle 是一个滑块游戏. 滑块方盘的长宽均为 \(k\times k\), 其中 \(N\) 个位置放序号打乱的方块, 剩下一个空位. 与空位同行或同列的方块可以通过水平或垂直滑动来移动. 目标是按编号顺序排列方块
\(N\)-puzzle 是一个滑块游戏. 滑块方盘的长宽均为 \(k\times k\), 其中 \(N\) 个位置放序号打乱的方块, 剩下一个空位. \\ 与空位同行或同列的方块可以通过水平或垂直滑动来移动. 目标是按编号顺序排列方块

需配合 \fullref{sec:a*-算法} 使用

Expand Down
4 changes: 2 additions & 2 deletions src/doc_tex/geo2d/femwebp.tex
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@

\[
y\gets T_0(y)=\begin{cases}
\tilde{T}(y), &\text{if } y\notin\{x_1,\dots,x_m\},\\
x_i,&\text{if } y=x_i.
\tilde{T}(y), & \text{if } y\notin\{x_1,\dots,x_m\}, \\
x_i, & \text{if } y=x_i.
\end{cases}
\]

Expand Down
10 changes: 5 additions & 5 deletions src/doc_tex/graph/chordal.tex
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@
\begin{itemize}
\item \textbf{团数}: 最大团的点数, 记为 \(\omega(G)\)
\item \textbf{色数}: 最小点染色的颜色数, 记为 \(\chi(G)\)

显然 \(\omega(G)\le\chi(G)\)

\item \textbf{最大独立集}: 最大的点集使得点集中任意两点都没有边直接相连. 该集合的大小记为 \(\alpha(G)\)
\item \textbf{最小团覆盖}: 用最少的团覆盖所有的点. 使用团的数量记为 \(\kappa(G)\)

显然 \(\alpha(G)\le\kappa(G)\)

\item \textbf{}: 连接环中不相邻两点的边
\item \textbf{弦图}: 任意长度大于 \(3\) 的环都有一个弦的图
\item \textbf{单纯点}: 设 \(N(x)\) 表示与点 \(x\) 相邻的点集, 若 \(\{x\}\cup N(x)\) 的导出子图是团, 则称点 \(x\) 为单纯点
\item \textbf{完美消除序列(PEO)}: 令 \(n=|V|\), 完美消除序列 \(v_1,\dots,v_n\)\(1,\dots,n\) 的一个排列, 满足 \(v_i\)\(\{v_i,\dots,v_n\}\) 的导出子图中为单纯点
\item \textbf{完美消除序列(PEO)}: 令 \(n=|V|\), 完美消除序列 \(v_1,\dots,v_n\)\(1,\dots,n\) 的排列, \(v_i\)\(\{v_i,\dots,v_n\}\) 的导出子图中为单纯点
\end{itemize}

\begin{figure}[h]
Expand Down
9 changes: 6 additions & 3 deletions src/doc_tex/graph/hlpp.tex
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
应用了 BFS 优化与 GAP 优化. 运行示例:
应用了 BFS 优化与 GAP 优化

\begin{center}
\begin{figure}[h]
\label{img:hlpp}
\centering
\includegraphics[width=\textwidth]{img/hlpp.png}
\end{center}
\caption{运行示例 (From OI-Wiki)}
\end{figure}

其中 pic13 到 pic14 执行了 Relabel(4), 并进行了 GAP 优化

Expand Down
3 changes: 1 addition & 2 deletions src/doc_tex/math/lagrange_interp0.tex
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@

\[
\begin{aligned}
f(x) & =\sum_{i=0}^{n-1} v_i \prod_{j\ne i} \frac{x-x_j}{x_i-x_j} \\
& =\sum_{i=0}^{n-1} v_i \prod_{j\ne i} \frac{x-j}{i-j} \\
f(x) & =\sum_{i=0}^{n-1} v_i \prod_{j\ne i} \frac{x-x_j}{x_i-x_j} =\sum_{i=0}^{n-1} v_i \prod_{j\ne i} \frac{x-j}{i-j} \\
& =\sum_{i=0}^{n-1} (-1)^{n-i-1} v_i \frac{(\prod_{j<i} x-j)(\prod_{j>i} x-j)}{i!(n-i-1)!}
\end{aligned}
\]
Expand Down
16 changes: 2 additions & 14 deletions src/doc_tex/math/nth_term_lrec.tex
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,8 @@

其中 \(c\) 是一个常数组, 对于一个较大的整数 \(N\), 计算 \(a_N\)

\(|c|=k\), 考虑 OGF, 令
\(|c|=k\), 考虑 OGF, 令 \(\displaystyle G(x)=1-\sum_{i=1}^k c_ix^i\), \(\displaystyle F(x)=G(x)\sum_{i=0}^{\infty} a_ix^i\)

\[
G(x)=1-\sum_{i=1}^k c_ix^i
\]

\[
F(x)=G(x)\sum_{i=0}^{\infty} a_ix^i
\]


\[
a_N=\left[x^N\right]\frac{f(x)}{g(x)}
\]
\(\displaystyle a_N=\left[x^N\right]\frac{f(x)}{g(x)}\)

参见 \fullref{sec:bostan--mori-算法}
10 changes: 2 additions & 8 deletions src/doc_tex/math/series_ipaf.tex
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
已知 \(f(0),\dots,f(k-1)\), \(a\), \(m\), \(f(i)=0,\quad \forall i\geq k\), \(m\in\mathbb{P}\)
已知 \(f(0),\dots,f(k-1)\), \(a\), \(m\), \(f(i)=0,\quad \forall i\geq k\), \(m\in\mathbb{P}\), 求 \(\displaystyle \sum_{i=0}^{\infty} a^i f(i)\bmod{m}\)

\[
\sum_{i=0}^{\infty} a^i f(i)\bmod{m}
\]

\paragraph{复杂度}

\(O(k+\log m)\)
\paragraph{复杂度} \(O(k+\log m)\)
10 changes: 2 additions & 8 deletions src/doc_tex/math/sum_ipaf.tex
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
已知 \(f(0),\dots,f(k-1)\), \(a\), \(n\), \(m\), \((m\in\mathbb{P})\), 求
已知 \(f(0),\dots,f(k-1)\), \(a\), \(n\), \(m\), \((m\in\mathbb{P})\), 求 \(\displaystyle \sum_{i=0}^{n-1} a^i f(i)\bmod{m}\)

\[
\sum_{i=0}^{n-1} a^i f(i)\bmod{m}
\]

\paragraph{复杂度}

\(O(\min{n,k}+\log m)\)
\paragraph{复杂度} \(O(\min{n,k}+\log m)\)
2 changes: 1 addition & 1 deletion src/doc_tex/math/youngt.tex
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Young 图: 形状为 \(\lambda=(\lambda_1,\dots,\lambda_k)\) (\(\lambda_1\geq \dots\geq \lambda_k\)) 的 Young 图为一个左对齐的, 由若干方格构成的图, 第 \(i\) 行有 \(\lambda_i\) 个方格.

Young 表: 在形状为 \(\lambda\) 的 Young 图的方块中填入长度为 \(\sum_k \lambda_k\) 的排列, 使得每一行 (从左到右) 每一列 (从上到下) 都是单调递增的, 得到的图形即为形状为 \(\lambda\) 的 Young 表.
Young 表: 在形状为 \(\lambda\) 的 Young 图的方块中填入长度为 \(\sum_k \lambda_k\) 的排列, 使得每一行 (从左到右) 每一列 (从上到下) \\ 都是单调递增的, 得到的图形即为形状为 \(\lambda\) 的 Young 表.

\paragraph{勾长公式}

Expand Down
6 changes: 1 addition & 5 deletions src/doc_tex/poly/bostan_mori.tex
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
\(0<\deg(p)<deg(q)=k\), 求

\[
\left[x^n\right]\frac{p(x)}{q(x)}
\]
\(0<\deg(p)<\deg(q)=k\), 求 \(\left[x^n\right]\dfrac{p(x)}{q(x)}\)

\paragraph{注意}

Expand Down
2 changes: 1 addition & 1 deletion src/doc_tex/poly/ode_fps.tex
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

\[
\begin{cases}
\frac{\mathrm{d}}{\mathrm{d}x}f\equiv g(f)\pmod{x^n} \\
\dfrac{\md}{\md x}f\equiv g(f)\pmod{x^n} \\
f(0)=a
\end{cases}
\]
Expand Down
4 changes: 2 additions & 2 deletions src/doc_tex/tree/centroid.tex
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

\paragraph{性质}

\begin{enumerate}
\begin{itemize}
\item 树的重心如果不唯一, 则至多有两个, 且这两个重心相邻
\item 以树的重心为根时, 所有子树的大小都不超过整棵树大小的一半
\item 树中所有点到某个点的距离和中, 到重心的距离和是最小的; 如果有两个重心, 那么到它们的距离和一样
\item 把两棵树通过一条边相连得到一棵新的树, 那么新的树的重心在连接原来两棵树的重心的路径上
\item 在一棵树上添加或删除一个叶子, 那么它的重心最多只移动一条边的距离
\end{enumerate}
\end{itemize}
8 changes: 1 addition & 7 deletions src/doc_tex/util/debruijn.tex
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
构造一个最短的循环序列, 使其包含长度为 \(n\), 字符集大小为 \(k\)\(k^n\) 个序列

de Bruijn 序列的长度为 \(k^n\), 共有

\[
\frac{\left(k!\right)^{k^{n-1}}}{k^n}
\]

de Bruijn 序列的长度为 \(k^n\), 共有 \(\dfrac{\left(k!\right)^{k^{n-1}}}{k^n}\)

0 comments on commit a3bf763

Please sign in to comment.