Skip to content

Commit a3d6bb5

Browse files
committed
feat(label): resolve label conflicts (#22)
* feat(label): change most of ambiguous labels to meaningful labels also adjust some environments re #19 * feat(label): modify label in Ln9 nearest points use figure file name as label name re #19 * feat(label): change label in chapter image segmentation also reformat with latexindent fix #19 docs(label): update readme add label content suggestions re #19
1 parent 3822bbf commit a3d6bb5

4 files changed

Lines changed: 82 additions & 77 deletions

File tree

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,12 @@ make dev
3333

3434
## FAQ
3535

36-
- *Q:* 编译出错: ! LaTeX Error: File `pgfornament.sty' not found.
36+
- *Q:* 编译出错: ! LaTeX Error: File <code>`pgfornament.sty'</code> not found.
3737
- *A:*[#8](https://github.com/colinaaa/algorithm-course-notes/issues/8)
3838

39+
- *Q:* 图片或定理的label应该怎么写?
40+
- *A:*[#19](https://github.com/colinaaa/algorithm-course-notes/issues/19) 最好使用有意义的名称,若实在没什么含义,也请加上作用域
41+
3942
## 工具链
4043

4144
- TexLive 2020

src/Image-segmentation.tex

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,55 +4,53 @@ \chapter{网络流应用之图像分割}
44
\centering 本章简单介绍网络流在图像分割上的应用。
55

66

7-
\begin{definition}{背景知识}{def1}
8-
图像是可以看作由一个个像素组成的巨大图, 将像素一一用边连接起来, 则这些像素点会成为这个巨大图网络的顶点.
9-
一个图由前景和背景组成, 假设顶点上的值用 $a_i$ 表示, $ 0 \leq a_i \leq 1 $, $a_i$ 趋近于 0 表示 $a_i$ 为图的背景, $a_i$ 趋近于 1 表示 $a_i$ 为图的前景, 并且设所有属于前景的顶点 $a_i$ 构成集合 A, 所有属于背景的顶点 $a_j$ 构成集合 B.
10-
假设边上的值用 $w_{ij}$ 表示, $w_{ij}$ 设为边的惩罚值, $w_{ij}$ 趋向于 0 表示“分离” (即 $w_{ij}$ 连接的两个点分别属于前景和背景), $w_{ij}$ 趋向于 1 表示“在一起” (即 $w_{ij}$ 连接的两个点都属于前景或者背景)
11-
设总的惩罚值为 $ A = \min\left(\sum_{i \epsilon B}a_i + \sum_{i \epsilon A}(1 - a_j) + \sum_{i \epsilon A, j \epsilon B}w_{ij} \right) $
7+
\begin{definition}{背景知识}{}
8+
图像是可以看作由一个个像素组成的巨大图, 将像素一一用边连接起来, 则这些像素点会成为这个巨大图网络的顶点.
9+
一个图由前景和背景组成, 假设顶点上的值用 $a_i$ 表示, $ 0 \leq a_i \leq 1 $, $a_i$ 趋近于 0 表示 $a_i$ 为图的背景, $a_i$ 趋近于 1 表示 $a_i$ 为图的前景, 并且设所有属于前景的顶点 $a_i$ 构成集合 A, 所有属于背景的顶点 $a_j$ 构成集合 B.
10+
假设边上的值用 $w_{ij}$ 表示, $w_{ij}$ 设为边的惩罚值, $w_{ij}$ 趋向于 0 表示“分离” (即 $w_{ij}$ 连接的两个点分别属于前景和背景), $w_{ij}$ 趋向于 1 表示“在一起” (即 $w_{ij}$ 连接的两个点都属于前景或者背景)
11+
设总的惩罚值为 $ A = \min\left(\sum_{i \epsilon B}a_i + \sum_{i \epsilon A}(1 - a_j) + \sum_{i \epsilon A, j \epsilon B}w_{ij} \right) $
1212
\end{definition}
1313

1414

1515
\section{问题实例}
1616
\subsection{问题描述}
1717
\begin{itemize}
18-
\item 对于下面这个图,利用网络流求解该图前景和背景的最大可能
18+
\item 对于下面这个图,利用网络流求解该图前景和背景的最大可能
1919
\end{itemize}
2020

2121
\begin{figure}[htb]
2222
\centering
23-
\includegraphics[scale=0.6]{image/Image-segmentation2.png}
24-
\caption{图片前景背景识别}\label{fig1}
23+
\includegraphics[scale=0.8]{image/Image-segmentation2.png}
24+
\caption{图片前景背景识别}\label{fig:image-seg-1}
2525
\end{figure}
2626

2727
\subsection{思路描述}
2828
\begin{itemize}
29-
\item 图形切割算法通过向图 G (V,E) 添加 S 点和 T 点,将图中所有的顶点,与 S 和 T 建立边,
30-
如果一个点与 S 相连,则对应边的权值为该点的值 $a_i$, 如果一个点与 T 相连,则对应边的权值为1减去该点的值 $ 1 - a_j $
31-
可以得到下面这个图:
29+
\item 图形切割算法通过向图 G (V,E) 添加 S 点和 T 点,将图中所有的顶点,与 S 和 T 建立边,
30+
如果一个点与 S 相连,则对应边的权值为该点的值 $a_i$, 如果一个点与 T 相连,则对应边的权值为1减去该点的值 $ 1 - a_j $
31+
可以得到下面这个图:
3232
\end{itemize}
3333

3434
\begin{figure}[htb]
35-
\centering
36-
\includegraphics[height=4.5cm]{image/Image-segmentation3.png}
37-
\caption{图片前景背景识别}\label{fig2}
35+
\centering
36+
\includegraphics[height=4.5cm]{image/Image-segmentation3.png}
37+
\caption{图片前景背景识别}\label{fig:image-seg-2}
3838
\end{figure}
3939

4040
\begin{itemize}
41-
\item 根据最大流最小割, 可以得到得到二分图的最大匹配, 可以得到集合A和B, 保证总的惩罚值 $ A = \min\left(\sum_{i \epsilon B}a_i + \sum_{i \epsilon A}(1 - a_j) + \sum_{i \epsilon A, j \epsilon B}w_{ij} \right) $ 最小,
42-
最小为 $(0.2 + 0.1) + (1 - 0.9) + (1 - 0.8) + 0.3 + 0.3 = 1.2 $, 而 A 和 B 分别对应图的前景和背景。
41+
\item 根据最大流最小割, 可以得到得到二分图的最大匹配, 可以得到集合A和B, 保证总的惩罚值 $ A = \min\left(\sum_{i \epsilon B}a_i + \sum_{i \epsilon A}(1 - a_j) + \sum_{i \epsilon A, j \epsilon B}w_{ij} \right) $ 最小,
42+
最小为 $(0.2 + 0.1) + (1 - 0.9) + (1 - 0.8) + 0.3 + 0.3 = 1.2 $, 而 A 和 B 分别对应图的前景和背景。
4343
\end{itemize}
4444

45-
46-
4745
\section{问题扩展}
4846
\begin{itemize}
49-
\item 假如一个图的前景不是一个整体,
50-
而是有两个分开的部分,比如两只在两个不同位置的猫在一个图中。
51-
这样一个算法能否将图像上的前景和背景分开?
47+
\item 假如一个图的前景不是一个整体,
48+
而是有两个分开的部分,比如两只在两个不同位置的猫在一个图中。
49+
这样一个算法能否将图像上的前景和背景分开?
5250
\end{itemize}
5351

5452
\begin{figure}[htb]
5553
\centering
5654
\includegraphics[scale=0.6]{image/Image-segmentation1.png}
57-
\caption{图片前景背景识别}\label{fig3}
58-
\end{figure}
55+
\caption{图片前景背景识别}\label{fig:image-seg-3}
56+
\end{figure}

src/Ln9-NearestPoints.tex

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ \section{平面最近点对问题定义}
1313
\begin{figure}[htb]
1414
\centering
1515
\includegraphics[scale=0.5]{image/NearestPointsDef.png}
16-
\caption{问题定义图例}\label{fig1}
16+
\caption{问题定义图例}\label{fig:nearestpoints-problem-def}
1717
\end{figure}
1818

19-
如上图\autoref{fig1}中点对$(A,B)$即为问题的答案。
19+
\autoref{fig:nearestpoints-problem-def}中点对$(A,B)$即为问题的答案。
2020

2121
\section{分治算法设计}
2222
对于这样一个问题,我们很直接地可以使用BF (Brute Force)算法进行暴力求解,
@@ -36,12 +36,12 @@ \subsection{分治问题}
3636
P_2 = \{p_i\ \big|\ \lfloor\frac{n}{2}\rfloor < i \le n\}
3737
\end{equation*}
3838
这样就将当前问题约减为两个规模为$\frac{n}{2}$的子问题
39-
分治过程如\autoref{fig2}中所示。
39+
分治过程如\autoref{fig:nearestpoints-divide}中所示。
4040

4141
\begin{figure}[htb]
4242
\centering
4343
\includegraphics[scale=0.5]{image/NearestPointsDivide.png}
44-
\caption{分治过程图例}\label{fig2}
44+
\caption{分治过程图例}\label{fig:nearestpoints-divide}
4545
\end{figure}
4646

4747
如此递归下去,我们可以求得两个点集相对应的最近点对距离$\delta_1, \delta_2$,取其中较小值
@@ -64,11 +64,11 @@ \subsection{合并结果}
6464
1 \le i \le n\}
6565
\end{equation*}
6666
因为只有$B$集合中的点之间的距离才有可能小于$\delta$
67-
$B$集合如下图\autoref{fig3}中阴影部分所示:
67+
$B$集合如下图\autoref{fig:nearestpoints-merge}中阴影部分所示:
6868
\begin{figure}[htb]
6969
\centering
7070
\includegraphics[scale=0.5]{image/NearestPointsMerge.png}
71-
\caption{合并过程图例}\label{fig3}
71+
\caption{合并过程图例}\label{fig:nearestpoints-merge}
7272
\end{figure}
7373

7474
进一步,我们的目标是检验在$B$集合中是否存在距离比$\delta$更近的点对,以此更新当前问题的解
@@ -86,11 +86,11 @@ \subsection{合并结果}
8686

8787
根据定义,$C(p_i)$中的点的纵坐标均处于$\interval[open left]{y_i - \delta}{y_i}$范围内,且其中的所有点
8888
的横坐标均处于$\left( x_m - \delta, x_m + \delta \right)$范围内。
89-
这样便构成了一个$2\delta\times\delta$的矩形。如下图\autoref{fig4}所示
89+
这样便构成了一个$2\delta\times\delta$的矩形。如下图\autoref{fig:nearestpoints-cpi}所示
9090
\begin{figure}[htb]
9191
\centering
9292
\includegraphics[scale=0.5]{image/NearestPointsCpi.png}
93-
\caption{$C(p_i)$}\label{fig4}
93+
\caption{$C(p_i)$}\label{fig:nearestpoints-cpi}
9494
\end{figure}。
9595

9696
接着,我们将这个矩形分拆成左右两个$\delta \times \delta$的正方形,左侧正方形的点集为
@@ -154,5 +154,5 @@ \section{伪代码}
154154
}
155155
Return $\delta$
156156
}
157-
\caption{Nearest-Pair\label{NPP}}
157+
\caption{Nearest-Pair}\label{alg:NPP}
158158
\end{algorithm}

src/Network-flows.tex

Lines changed: 48 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -11,54 +11,55 @@ \chapter{网络流应用}
1111

1212
\section{最大二分匹配问题}
1313

14-
\begin{definition}{二分图}{def1}
14+
\begin{definition}{二分图}{bipartite-graph}
1515
对于无向图\(G = (V,\,E)\),若顶点集V可以分割为两个互不相交子集\((X,\,Y)\),使得边集\(E\)中任意一条边\(e = (u,\,v)\),都可以满足\(u \in X\)\(v \in Y\),则称图\(G\)为二分图。
1616
\end{definition}
1717

1818
问题: 对于给定的\(G = (V,\,E)\),\(V\)\(V_l \cup V_r\),\(V_l \cap V_r = \phi \),找到\(V_l\)\(V_r\)的最大匹配。
1919

20-
\begin{definition}{匹配}{def2}
20+
\begin{definition}{匹配}{matching}
2121
一边集M为边集E的子集,且M中任意两条边无公用顶点(不相交),则称M为图G的一个匹配。
2222
\end{definition}
2323

24-
\begin{definition}{极大匹配}{def3}
24+
% TODO(translate): how to translate 极大匹配?
25+
\begin{definition}{极大匹配}{great-matching}
2526
不是其他任何匹配的子集的匹配。
2627
\end{definition}
2728

28-
\begin{definition}{最大匹配}{def4}
29+
\begin{definition}{最大匹配}{maximal-matching}
2930
极大匹配中包含最多边数的一个匹配称为最大匹配。
3031
\end{definition}
3132

3233
\begin{figure}[htb]
3334
\centering
3435
\includegraphics[scale=0.6]{image/networkflow1.png}
35-
\caption{极大匹配举例}\label{fig1}
36+
\caption{极大匹配举例}\label{fig:networkflow-example1}
3637
\end{figure}
37-
\autoref{fig1}所示,二者都为极大匹配,但是只有左图为最大匹配。
38+
\autoref{fig:networkflow-example1}所示,二者都为极大匹配,但是只有左图为最大匹配。
3839

3940
\begin{figure}[htb]
4041
\centering
4142
\includegraphics[scale=0.6]{image/networkflow2.png}
42-
\caption{FF算法建模}\label{fig2}
43+
\caption{FF算法建模}\label{fig:networkflow-ff-alg}
4344
\end{figure}
4445

45-
使用如\autoref{fig2}的方法构建网络流,之后使用FF算法求解。
46+
使用如\autoref{fig:networkflow-ff-alg}的方法构建网络流,之后使用FF算法求解。
4647

4748
网络流解决最大二分匹配问题的时间复杂度为:\(O(mn)\)
4849

49-
\begin{lemma}{最大流最小割定理}{lemma1}
50+
\begin{theorem}{最大流最小割定理}{max-flow-min-cut}
5051
指在一个网络流中,能够从源点到达汇点的最大流量等于如果从网络中移除就能够导致网络流中断的边的集合(对割的另一种理解)的最小容量和。即在任何网络中,最大流的值等于最小割的容量。
51-
\end{lemma}
52+
\end{theorem}
5253

5354
使用下面一个例子说明该算法的正确性:
5455
\begin{figure}[htb]
5556
\centering
5657
\includegraphics[scale=0.6]{image/networkflow3.png}
57-
\caption{算法正确性说明}\label{fig3}
58+
\caption{算法正确性说明}\label{fig:networkflow-alg-correctness}
5859
\end{figure}
5960

6061
\begin{example}
61-
\autoref{fig3}所示,给定二分图中,点被分为了\(V_l\)\(V_r\)两个部分,构造网络流算法,设置一个起点S,且令S到所有的\(V_l\)中的点均有路径,容量为1;设置一个终点T,且从\(V_r\)中的点到T均有路径,容量为1。同时,所有\(V_l\)\(V_r\)之间的路径容量均设为无穷大,由此可以找到该网络流的最大流和最小割。
62+
\autoref{fig:networkflow-alg-correctness}所示,给定二分图中,点被分为了\(V_l\)\(V_r\)两个部分,构造网络流算法,设置一个起点S,且令S到所有的\(V_l\)中的点均有路径,容量为1;设置一个终点T,且从\(V_r\)中的点到T均有路径,容量为1。同时,所有\(V_l\)\(V_r\)之间的路径容量均设为无穷大,由此可以找到该网络流的最大流和最小割。
6263
\end{example}
6364

6465
\begin{itemize}
@@ -69,17 +70,17 @@ \section{最大二分匹配问题}
6970
\end{itemize}
7071
对于二分图来说 |最大匹配|=|最小顶点覆盖|。
7172

72-
\begin{definition}{完美匹配}{def5}
73+
\begin{definition}{完美匹配}{perfect-matching}
7374
所有的点均被匹配,不存在未被匹配的点。
7475
\end{definition}
7576

76-
\begin{definition}{T (A)}{def6}
77+
\begin{definition}{T (A)}{}
7778
\(A \subseteq V_l\),\(T(A) = \{b \in Vr | (a,b) \in E \} \)
7879
\end{definition}
7980

8081
对于一个二分图来说,如果\(|V_l|=|V_r|=n\),并且存在完美匹配,那么任取集合\(A \subseteq V_l,\,|T(A)| \ge |A|\)
8182

82-
\begin{theorem}{霍尔定理}{thm1}
83+
\begin{theorem}{霍尔定理}{hall}
8384
任取\(A \subseteq V_l\),若\(|T(A)| \ge |A|\),则存在完美匹配。
8485
\end{theorem}
8586
证明霍尔定理的正确性~(证明其逆否命题正确):
@@ -100,17 +101,16 @@ \section{骨牌问题}\label{sec:network-flows-tiling}
100101
\begin{figure}[htb]
101102
\centering
102103
\includegraphics[scale=0.6]{image/networkflow4.png}
103-
\caption{骨牌问题建模}\label{fig4}
104+
\caption{骨牌问题建模}\label{fig:networkflow-tiling}
104105
\end{figure}
105106

106-
\begin{itemize}
107-
\item 问题建模:沿用之前的处理方法,黑白相间地将棋盘做上标记,
108-
这样棋盘的方格会被分为两个集合\((B,W)\)
109-
\(|B|\)不等于\(|W|\),我们可以得出否定的结论;
110-
\(|B|=|W|=n\),则在B和W集之间,相邻的方格连上边,容量正无穷,
111-
这样一来, (B,W) 相当于二分匹配中的\((V_l,\,V_r)\)
112-
就相当于解决一个最大二分匹配问题,建模如\autoref{fig4}。
113-
\end{itemize}
107+
\paragraph*{问题建模:}
108+
沿用之前的处理方法,黑白相间地将棋盘做上标记,
109+
这样棋盘的方格会被分为两个集合\((B,W)\)
110+
\(|B|\)不等于\(|W|\),我们可以得出否定的结论;
111+
\(|B|=|W|=n\),则在B和W集之间,相邻的方格连上边,容量正无穷,
112+
这样一来, (B,W) 相当于二分匹配中的\((V_l,\,V_r)\)
113+
就相当于解决一个最大二分匹配问题,建模如\autoref{fig:networkflow-tiling}。
114114

115115
求得最大流\(f=n\),则表示该棋盘可以用骨牌填满。
116116
\begin{itemize}
@@ -121,32 +121,34 @@ \section{棒球比赛}
121121
\begin{figure}[htb]
122122
\centering
123123
\includegraphics[scale=0.6]{image/networkflow5.png}
124-
\caption{棒球问题说明}\label{fig5}
124+
\caption{棒球问题说明}\label{fig:networkflow-baseball}
125125
\end{figure}
126126
\begin{example}
127-
有四个棒球队比赛,目前赛场上的得分情况及剩余的场次如\autoref{fig5},问B队有没有机会赢得比赛(并列第一也算赢)?
127+
有四个棒球队比赛,目前赛场上的得分情况及剩余的场次如\autoref{fig:networkflow-baseball},
128+
问B队有没有机会赢得比赛(并列第一也算赢)?
128129
\end{example}
129130

130131
\begin{figure}[h]
131132
\centering
132133
\includegraphics[scale=0.6]{image/networkflow6.png}
133-
\caption{棒球问题建模}\label{fig6}
134+
\caption{棒球问题建模}\label{fig:networkflow-baseball2}
134135
\end{figure}
135136

136-
\begin{itemize}
137-
\item 问题建模:先计算若B队赢得了剩下所有可赢得的分后的总得分S。称参赛双方相同的比赛为一类比赛。将每类比赛作为顶点,通过容量为该类比赛剩余场数的入边交于源点s,出边指向参赛队伍,容量为正无穷;参赛队伍出边指向汇点t,容量为S-(该队伍的当前得分)。如\autoref{fig6}所示。
138-
\end{itemize}
137+
\paragraph*{问题建模:}先计算若B队赢得了剩下所有可赢得的分后的总得分S。
138+
称参赛双方相同的比赛为一类比赛。将每类比赛作为顶点,通过容量为该类比赛剩余场数的入边交于源点s,
139+
出边指向参赛队伍,容量为正无穷;参赛队伍出边指向汇点t,容量为S-(该队伍的当前得分)。
140+
\autoref{fig:networkflow-baseball2}所示。
139141

140142
求得最大流\(f = C_{in}(t)\)\(C_{in}(t)\)即t的流入边容量之和,则表示B有机会赢。
141143

142144
\begin{figure}[htb]
143145
\centering
144146
\includegraphics[scale=0.6]{image/networkflow7.png}
145-
\caption{棒球问题残差图}\label{fig7}
147+
\caption{棒球问题残差图}\label{fig:networkflow-baseball-reduc}
146148
\end{figure}
147149

148150
\begin{itemize}
149-
\item 用F-F算法求模型的最大流和最小割,残差图如\autoref{fig7}。
151+
\item 用F-F算法求模型的最大流和最小割,残差图如\autoref{fig:networkflow-baseball-reduc}。
150152
\end{itemize}
151153
\begin{example}
152154
如果初始状态,B的得分为90,那么B能否获胜?(B有机会获胜)
@@ -160,40 +162,42 @@ \section{项目选择问题}
160162
\begin{figure}[htb]
161163
\centering
162164
\includegraphics[scale=0.6]{image/networkflow8.png}
163-
\caption{项目选择事例}\label{fig8}
165+
\caption{项目选择示例}\label{fig:networkflow-project-select-example}
164166
\end{figure}
165-
为更好地理解问题,给出一更加具体地例子,如\autoref{fig8}所示。
167+
为更好地理解问题,给出一更加具体地例子,如\autoref{fig:networkflow-project-select-example}所示。
166168
\begin{figure}[htb]
167169
\centering
168170
\includegraphics[scale=0.6]{image/networkflow9.png}
169-
\caption{项目选择建模}\label{fig9}
171+
\caption{项目选择建模}\label{fig:networkflow-project-select-modeling}
170172
\end{figure}
171-
\begin{itemize}
172-
\item 问题建模:由于有先后的制约关系,所以原图应为一个有向图,在此基础上,引入源点s,指向所有价值为负的项目,容量为该项目价值的绝对值;所有价值为正的项目指向汇点t,容量为该项目的价值。对一实例的建模如\autoref{fig9}。
173-
\end{itemize}
173+
174+
\paragraph*{问题建模:}由于有先后的制约关系,所以原图应为一个有向图,在此基础上,引入源点s,
175+
指向所有价值为负的项目,容量为该项目价值的绝对值;所有价值为正的项目指向汇点t,
176+
容量为该项目的价值。对一实例的建模如\autoref{fig:networkflow-project-select-modeling}。
174177

175178
\begin{figure}[htb]
176179
\centering
177180
\includegraphics[scale=0.6]{image/networkflow10.png}
178-
\caption{项目选择问题解决}\label{fig10}
181+
\caption{项目选择问题解决}\label{fig:networkflow-project-select-solve}
179182
\end{figure}
180183

181184
\begin{itemize}
182-
\item 用F-F算法求模型的最大流和最小割,残差图如\autoref{fig10}所示,其中最小割中的集合B所包含的项目即为问题的解。
185+
\item 用F-F算法求模型的最大流和最小割,残差图如\autoref{fig:networkflow-project-select-solve}所示,
186+
其中最小割中的集合B所包含的项目即为问题的解。
183187
\end{itemize}
184188

185-
结果正确性分析:
189+
\paragraph*{结果正确性分析:}
186190
\begin{figure}[htb]
187191
\centering
188192
\includegraphics[scale=0.6]{image/networkflow11.png}
189-
\caption{项目选择问题一般情形}\label{fig11}
193+
\caption{项目选择问题一般情形}\label{fig:networkflow-project-select-general}
190194
\end{figure}
191195

192196
\begin{itemize}
193197
\item 解的可行性:该模型s的所有出边容量为有限值,最坏的情况就是所有负价值点都被选入,此时最小割为s所有出边,因此最小割是包含不到无穷大的边的,此解法也就是可行的。
194-
\item 解为最优解:如\autoref{fig11}为此模型获得的一般割情形。
198+
\item 解为最优解:如\autoref{fig:networkflow-project-select-general}为此模型获得的一般割情形。
195199
\end{itemize}
196-
\autoref{fig11}可求此结果的价值:
200+
\autoref{fig:networkflow-project-select-general}可求此结果的价值:
197201
\begin{equation}
198202
v = (p_{B+}) - (p_{B-}) = (p_+) - (p_{A+}) - (p_{B-}) = (p_+) - [(p_{A+}) + (p_{B-})] = (p_+) - cut\\
199203
\end{equation}

0 commit comments

Comments
 (0)