Jelajahi Sumber

Site updated: 2020-03-15 22:16:12

schtonn 5 tahun lalu
induk
melakukan
64c7e93e7d

+ 12 - 12
2020/03/01/min-span-tree/index.html

@@ -239,20 +239,20 @@
 <p>这种方法有点类似<a href="http://baidu.physton.com/?q=dijkstra" target="_blank" rel="noopener" title="这都不会?">Dijstra</a>,就是每次从所有<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>v</mi><mi>i</mi><mi>s</mi></mrow><annotation encoding="application/x-tex">vis</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.65952em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.03588em;">v</span><span class="mord mathdefault">i</span><span class="mord mathdefault">s</span></span></span></span>过的点遍历能达到的边,从其中选择一条最小的,加入生成树。</p>
 <hr />
 <p>假设我们有这么一张图:<br />
-<a href="https://csacademy.com/app/graph_editor" target="_blank" rel="noopener" title="点击查看生成工具"><img src="https://img-blog.csdnimg.cn/20200103203601629.png" alt="" /></a></p>
+<a href="https://csacademy.com/app/graph_editor" target="_blank" rel="noopener" title="点击查看生成工具"><img data-src="https://img-blog.csdnimg.cn/20200103203601629.png" alt="" /></a></p>
 <p>就从0号点开始吧:<br />
 <a href="https://csacademy.com/app/graph_editor" target="_blank" rel="noopener" title="点击查看生成工具"><br />
-<img src="https://img-blog.csdnimg.cn/20200103204749157.png" alt="在这里插入图片描述" /></a></p>
+<img data-src="https://img-blog.csdnimg.cn/20200103204749157.png" alt="在这里插入图片描述" /></a></p>
 <p>找到从<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>0</mn></mrow><annotation encoding="application/x-tex">0</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">0</span></span></span></span>出发的最小的边:<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo stretchy="false">[</mo><mn>0</mn><mo separator="true">,</mo><mn>2</mn><mo stretchy="false">]</mo></mrow><annotation encoding="application/x-tex">[0,2]</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">[</span><span class="mord">0</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord">2</span><span class="mclose">]</span></span></span></span>,边权为<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>3</mn></mrow><annotation encoding="application/x-tex">3</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">3</span></span></span></span>,那么对<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>2</mn></mrow><annotation encoding="application/x-tex">2</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">2</span></span></span></span>号点进行标记。<br />
-<a href="https://csacademy.com/app/graph_editor" target="_blank" rel="noopener" title="点击查看生成工具"><img src="https://img-blog.csdnimg.cn/20200103205741495.png" alt="" /></a></p>
+<a href="https://csacademy.com/app/graph_editor" target="_blank" rel="noopener" title="点击查看生成工具"><img data-src="https://img-blog.csdnimg.cn/20200103205741495.png" alt="" /></a></p>
 <p>然后从<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>0</mn></mrow><annotation encoding="application/x-tex">0</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">0</span></span></span></span>号和<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>2</mn></mrow><annotation encoding="application/x-tex">2</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">2</span></span></span></span>号节点继续找,发现最小的是<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo stretchy="false">[</mo><mn>2</mn><mo separator="true">,</mo><mn>4</mn><mo stretchy="false">]</mo></mrow><annotation encoding="application/x-tex">[2,4]</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">[</span><span class="mord">2</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord">4</span><span class="mclose">]</span></span></span></span>边,那么就标记<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>4</mn></mrow><annotation encoding="application/x-tex">4</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">4</span></span></span></span>号节点。<br />
-<a href="https://csacademy.com/app/graph_editor" target="_blank" rel="noopener" title="点击查看生成工具"><img src="https://img-blog.csdnimg.cn/20200103210306831.png" alt="在这里插入图片描述" /></a></p>
+<a href="https://csacademy.com/app/graph_editor" target="_blank" rel="noopener" title="点击查看生成工具"><img data-src="https://img-blog.csdnimg.cn/20200103210306831.png" alt="在这里插入图片描述" /></a></p>
 <p>然后是<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo stretchy="false">[</mo><mn>4</mn><mo separator="true">,</mo><mn>1</mn><mo stretchy="false">]</mo></mrow><annotation encoding="application/x-tex">[4,1]</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">[</span><span class="mord">4</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord">1</span><span class="mclose">]</span></span></span></span>,<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>1</mn></mrow><annotation encoding="application/x-tex">1</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">1</span></span></span></span>号。<br />
-<a href="https://csacademy.com/app/graph_editor" target="_blank" rel="noopener" title="点击查看生成工具"><img src="https://img-blog.csdnimg.cn/20200103210445854.png" alt="在这里插入图片描述" /></a></p>
+<a href="https://csacademy.com/app/graph_editor" target="_blank" rel="noopener" title="点击查看生成工具"><img data-src="https://img-blog.csdnimg.cn/20200103210445854.png" alt="在这里插入图片描述" /></a></p>
 <p>以此类推,最后就生成出来了这样一个图:</p>
-<p><a href="https://csacademy.com/app/graph_editor" target="_blank" rel="noopener" title="点击查看生成工具"><img src="https://img-blog.csdnimg.cn/20200103210621487.png" alt="在这里插入图片描述" /></a></p>
+<p><a href="https://csacademy.com/app/graph_editor" target="_blank" rel="noopener" title="点击查看生成工具"><img data-src="https://img-blog.csdnimg.cn/20200103210621487.png" alt="在这里插入图片描述" /></a></p>
 <p>把没有标记的边删掉,就是最小生成树。<br />
-<a href="https://csacademy.com/app/graph_editor" target="_blank" rel="noopener" title="点击查看生成工具"><img src="https://img-blog.csdnimg.cn/20200103210727778.png" alt="" /></a></p>
+<a href="https://csacademy.com/app/graph_editor" target="_blank" rel="noopener" title="点击查看生成工具"><img data-src="https://img-blog.csdnimg.cn/20200103210727778.png" alt="" /></a></p>
 <p>这就是prim算法 <s>,代码我不会写</s>在后面。</p>
 <h3 id="生成方式二kruskal"><a class="markdownIt-Anchor" href="#生成方式二kruskal"></a> 生成方式二:kruskal</h3>
 <p>这个算法本质上就是把所有边按照边权排序,然后直接<s>爆炸</s>按顺序判断要不要加进生成树里。<br />
@@ -260,15 +260,15 @@ kruskal算法使用了一种极速闪电致命又自杀的东西:并查集。<
 <a href="https://schtonn.github.io/post/union-find-set">他有多快呢?</a></p>
 <hr />
 <p>好了我们在建一个图模拟一下吧<br />
-<img src="https://img-blog.csdnimg.cn/20200103215213917.png" alt="在这里插入图片描述" /></p>
+<img data-src="https://img-blog.csdnimg.cn/20200103215213917.png" alt="在这里插入图片描述" /></p>
 <p>先给边排序。最小的是<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo stretchy="false">[</mo><mn>2</mn><mo separator="true">,</mo><mn>3</mn><mo stretchy="false">]</mo></mrow><annotation encoding="application/x-tex">[2,3]</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">[</span><span class="mord">2</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord">3</span><span class="mclose">]</span></span></span></span>,把他拿出来,判断一下。怎么判断呢?首先访问一下并查集看一看,这个边连接的两个点在不在同一个集合内,不在的话就把这条边加入生成树,然后把两个点合并。否则忽略这一条变,继续。这一条边符合要求,加进并查集里,现在<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>2</mn><mo separator="true">,</mo><mn>3</mn></mrow><annotation encoding="application/x-tex">{2,3}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8388800000000001em;vertical-align:-0.19444em;"></span><span class="mord"><span class="mord">2</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord">3</span></span></span></span></span>是一个集合,剩下都是独立的。</p>
-<p><img src="https://img-blog.csdnimg.cn/20200103215304212.png" alt="在这里插入图片描述" /><br />
+<p><img data-src="https://img-blog.csdnimg.cn/20200103215304212.png" alt="在这里插入图片描述" /><br />
 现在最小的有<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo stretchy="false">[</mo><mn>1</mn><mo separator="true">,</mo><mn>4</mn><mo stretchy="false">]</mo></mrow><annotation encoding="application/x-tex">[1,4]</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">[</span><span class="mord">1</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord">4</span><span class="mclose">]</span></span></span></span>和<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo stretchy="false">[</mo><mn>4</mn><mo separator="true">,</mo><mn>5</mn><mo stretchy="false">]</mo></mrow><annotation encoding="application/x-tex">[4,5]</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">[</span><span class="mord">4</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord">5</span><span class="mclose">]</span></span></span></span>,我们都判断一下,都可以。<br />
-<img src="https://img-blog.csdnimg.cn/20200103215356204.png" alt="在这里插入图片描述" /></p>
+<img data-src="https://img-blog.csdnimg.cn/20200103215356204.png" alt="在这里插入图片描述" /></p>
 <p>然后就是<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo stretchy="false">[</mo><mn>0</mn><mo separator="true">,</mo><mn>4</mn><mo stretchy="false">]</mo></mrow><annotation encoding="application/x-tex">[0,4]</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">[</span><span class="mord">0</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord">4</span><span class="mclose">]</span></span></span></span>和<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo stretchy="false">[</mo><mn>2</mn><mo separator="true">,</mo><mn>4</mn><mo stretchy="false">]</mo></mrow><annotation encoding="application/x-tex">[2,4]</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">[</span><span class="mord">2</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord">4</span><span class="mclose">]</span></span></span></span>,依然都是可以的。<br />
-<img src="https://img-blog.csdnimg.cn/20200103215507942.png" alt="在这里插入图片描述" /><br />
+<img data-src="https://img-blog.csdnimg.cn/20200103215507942.png" alt="在这里插入图片描述" /><br />
 这样,一颗活灵活现的生成树就出现了。<br />
-<img src="https://img-blog.csdnimg.cn/20200103215600881.png" alt="" /></p>
+<img data-src="https://img-blog.csdnimg.cn/20200103215600881.png" alt="" /></p>
 <p>好了!</p>
 <h3 id="代码luogup3366"><a class="markdownIt-Anchor" href="#代码luogup3366"></a> 代码(<a href="https://www.luogu.com.cn/problem/P3366" target="_blank" rel="noopener">luoguP3366</a>)</h3>
 <p>kruskal的代码又短又易于理解,甚至可以直接用数组存边,所以他非常好写,推荐。</p>

+ 1 - 1
2020/03/01/tree-link/index.html

@@ -226,7 +226,7 @@
 <a id="more"></a>
 <h3 id="剖分方式"><a class="markdownIt-Anchor" href="#剖分方式"></a> 剖分方式</h3>
 <p>对于每一个节点,它的子节点中<strong>子树的节点数最大的</strong>为重儿子,连接到重儿子的边称为重边。例如:<br />
-<img src="https://img-blog.csdnimg.cn/20191228195815530.png" alt="" /><br />
+<img data-src="https://img-blog.csdnimg.cn/20191228195815530.png" alt="" /><br />
 加粗节点为重儿子。<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>4</mn></mrow><annotation encoding="application/x-tex">4</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">4</span></span></span></span><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>5</mn></mrow><annotation encoding="application/x-tex">5</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">5</span></span></span></span><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>6</mn></mrow><annotation encoding="application/x-tex">6</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">6</span></span></span></span>节点的重量都一样,所以你想上哪个成为重儿子那个就是重儿子。除重儿子和重边外的节点和边均为轻儿子或轻边。根不是重儿子也不是轻儿子 <s>,有脑子的人都会想一想,它根本就不是什么儿子!</s> 。<br />
 以轻儿子或者根为起点的,由重边连接的一条连续的链称为重链。特别地,若一个叶子结点是轻儿子,那么便有一条以该叶子结点为起点的长度为1的重链。上图中,<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>1</mn><mo>−</mo><mn>3</mn><mo>−</mo><mn>7</mn><mo>−</mo><mn>9</mn></mrow><annotation encoding="application/x-tex">1-3-7-9</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.72777em;vertical-align:-0.08333em;"></span><span class="mord">1</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.72777em;vertical-align:-0.08333em;"></span><span class="mord">3</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.72777em;vertical-align:-0.08333em;"></span><span class="mord">7</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">9</span></span></span></span>是一条重链,<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>6</mn></mrow><annotation encoding="application/x-tex">6</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">6</span></span></span></span>一个节点也是一条重链。</p>
 <h3 id="预处理"><a class="markdownIt-Anchor" href="#预处理"></a> 预处理</h3>

+ 8 - 8
2020/03/01/union-find/index.html

@@ -282,25 +282,25 @@
 <p>我们首先随机造出一些操作:</p>
 <figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">10</span><br><span class="line">merge 1 5</span><br><span class="line">merge 5 2</span><br><span class="line">merge 1 3</span><br><span class="line">check 2 3</span><br><span class="line">merge 3 4</span><br><span class="line">merge 6 7</span><br><span class="line">check 1 7</span><br><span class="line">merge 7 8</span><br><span class="line">merge 8 9</span><br><span class="line">merge 1 9</span><br><span class="line">check 7 4</span><br></pre></td></tr></table></figure>
 <p>其中,merge代表合并,check代表查询。<br />
-如果按照刚才所的算法,那么在第一次查询之前,就会出来这样的森林:<img src="https://img-blog.csdnimg.cn/20200105142700396.png" alt="Insert mother fucker" /><br />
+如果按照刚才所的算法,那么在第一次查询之前,就会出来这样的森林:<img data-src="https://img-blog.csdnimg.cn/20200105142700396.png" alt="Insert mother fucker" /><br />
 到最后,就形成了这样一个繁杂的森林,要找到一个点的根,就需要走很长一段路。这就拉长了时间。<br />
-<img src="https://img-blog.csdnimg.cn/20200105142531778.png" alt="Insert mother fucker" /><br />
+<img data-src="https://img-blog.csdnimg.cn/20200105142531778.png" alt="Insert mother fucker" /><br />
 为了缩减时间,超级优化就出现了:路径压缩。<br />
 路径压缩其实也很简单:在<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>g</mi><mi>e</mi><mi>t</mi><mi>f</mi><mo stretchy="false">(</mo><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">getf()</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault" style="margin-right:0.03588em;">g</span><span class="mord mathdefault">e</span><span class="mord mathdefault">t</span><span class="mord mathdefault" style="margin-right:0.10764em;">f</span><span class="mopen">(</span><span class="mclose">)</span></span></span></span>查找根节点的同时,把自己也链接到根节点上,使得树的深度不超过2。<br />
 代码:</p>
 <figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">getf</span><span class="params">(<span class="keyword">int</span> x)</span></span>&#123;</span><br><span class="line">	<span class="keyword">if</span>(f[x]==x)<span class="keyword">return</span> x;</span><br><span class="line">	<span class="keyword">else</span> <span class="keyword">return</span> f[x]=getf(f[x]);</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
 <p>发现没有,和之前的代码相比,只改了一个地方,就让时间大大压缩。<br />
 这时我们在模拟一下。<br />
-第一次合并:<img src="https://img-blog.csdnimg.cn/20200105143342729.png" alt="Insert mother fucker" /><br />
+第一次合并:<img data-src="https://img-blog.csdnimg.cn/20200105143342729.png" alt="Insert mother fucker" /><br />
 第二次合并时,首先寻找2,5两个节点的根节点,2的根就是2,5的根是1,于是直接把2链接到1上。<br />
-<img src="https://img-blog.csdnimg.cn/20200105144059847.png" alt="Insert mother fucker" /><br />
+<img data-src="https://img-blog.csdnimg.cn/20200105144059847.png" alt="Insert mother fucker" /><br />
 第三次,第四次合并把3链接到了1上,然后把4顺着3也链接到了1上,第五次连接了6和7。<br />
-<img src="https://img-blog.csdnimg.cn/20200105143532966.png" alt="Insert mother fucker" /><br />
+<img data-src="https://img-blog.csdnimg.cn/20200105143532966.png" alt="Insert mother fucker" /><br />
 第七次第八次链接成了<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>9</mn><mo>→</mo><mn>8</mn><mo>→</mo><mn>7</mn><mo>→</mo><mn>6</mn></mrow><annotation encoding="application/x-tex">9\rightarrow8\rightarrow7\rightarrow6</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">9</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">→</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">8</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">→</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">7</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">→</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">6</span></span></span></span>一长串,然后经过路径压缩都链接到6上了。<br />
-<img src="https://img-blog.csdnimg.cn/20200105143644622.png" alt="Insert mother fucker" /><br />
-最后一次,把9和1链接起来了,这时深度又超过了2,一下还压缩不下去,不过没关系,查询的时候就会把它压缩的。<img src="https://img-blog.csdnimg.cn/20200105143847598.png" alt="Insert mother fucker" /><br />
+<img data-src="https://img-blog.csdnimg.cn/20200105143644622.png" alt="Insert mother fucker" /><br />
+最后一次,把9和1链接起来了,这时深度又超过了2,一下还压缩不下去,不过没关系,查询的时候就会把它压缩的。<img data-src="https://img-blog.csdnimg.cn/20200105143847598.png" alt="Insert mother fucker" /><br />
 比如查询7和4的时候就会分别寻找7和4的根节点,一路递归找上去的时候就直接把路径压缩好了,除了8还链接在6上,其他全部链接到1上了。<br />
-<img src="https://img-blog.csdnimg.cn/20200105144933595.png" alt="Insert mother fucker" /><br />
+<img data-src="https://img-blog.csdnimg.cn/20200105144933595.png" alt="Insert mother fucker" /><br />
 多么有趣啊!</p>
 <h3 id="代码"><a class="markdownIt-Anchor" href="#代码"></a> 代码</h3>
 <p>自己想去吧,核心代码和思路都给出来了。<br />

+ 3 - 3
2020/03/02/dinic/index.html

@@ -237,9 +237,9 @@
 <blockquote>
 <p>増广就是在残余网络中寻找从源点到汇点的可行路径(増广路),并将该路径上的所有边的容量减去路径中的最小容量,形成新的残余网络,<strong>人话就是找一条能走的路,然后把路走掉。</strong><br />
 例如:<br />
-<img src="https://img-blog.csdnimg.cn/20200111112801923.png" alt="在这里插入图片描述" /><br />
+<img data-src="https://img-blog.csdnimg.cn/20200111112801923.png" alt="在这里插入图片描述" /><br />
 如果当前有这样一个残余网络,那么<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>s</mi><mo>→</mo><mn>4</mn><mo>→</mo><mn>1</mn><mo>→</mo><mi>t</mi></mrow><annotation encoding="application/x-tex">s\rightarrow4\rightarrow1\rightarrow t</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathdefault">s</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">→</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">4</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">→</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">1</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">→</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.61508em;vertical-align:0em;"></span><span class="mord mathdefault">t</span></span></span></span>就是一条増广路,最小容量是4,进行増广过后就形成了这样一张图:<br />
-<img src="https://img-blog.csdnimg.cn/20200111114148208.png" alt="在这里插入图片描述" /><br />
+<img data-src="https://img-blog.csdnimg.cn/20200111114148208.png" alt="在这里插入图片描述" /><br />
 如何寻找増广路?直接dfs即可。</p>
 </blockquote>
 <ul>
@@ -247,7 +247,7 @@
 </ul>
 <blockquote>
 <p>有时候,程序増广的时候会出现爆炸性错误,例如还是那个图:<br />
-<img src="https://img-blog.csdnimg.cn/20200111112801923.png" alt="在这里插入图片描述" /><br />
+<img data-src="https://img-blog.csdnimg.cn/20200111112801923.png" alt="在这里插入图片描述" /><br />
 有两条増广路,万一程序选错了怎么办?<br />
 这时就要请出反向边了。<br />
 每次増广的时候,<strong>在残余网络上逆着増广路径建容量与増广路径最小容量相等的反向边</strong>,比如刚才那张图,就顺着<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>t</mi><mo>→</mo><mn>1</mn><mo>→</mo><mn>4</mn><mo>→</mo><mi>s</mi></mrow><annotation encoding="application/x-tex">t\rightarrow1\rightarrow4\rightarrow s</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.61508em;vertical-align:0em;"></span><span class="mord mathdefault">t</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">→</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">1</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">→</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">4</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">→</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathdefault">s</span></span></span></span>建容量为4的边。相当于把原来的那条路抵消掉了,如果増广时走过了反向边,就相当于把原来的増广撤回去了。<br />

+ 1 - 1
2020/03/02/segment-tree/index.html

@@ -230,7 +230,7 @@
 而子节点也是一棵线段树。<br />
 一直往下延伸,叶子结点就代表着单一位置 <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo stretchy="false">[</mo><mi>a</mi><mo separator="true">,</mo><mi>a</mi><mo stretchy="false">]</mo></mrow><annotation encoding="application/x-tex">[a,a]</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">[</span><span class="mord mathdefault">a</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord mathdefault">a</span><span class="mclose">]</span></span></span></span>。<br />
 下图是一个 <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>n</mi><mo>=</mo><mn>7</mn></mrow><annotation encoding="application/x-tex">n=7</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathdefault">n</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">7</span></span></span></span> 的示例:</p>
-<p><img src="/images/segment-1.png" alt="segment-1" /></p>
+<p><img data-src="/images/segment-1.png" alt="segment-1" /></p>
 <p>每一个节点都存储着它所代表的区间的信息,比如这个区间的和。</p>
 <h3 id="查找"><a class="markdownIt-Anchor" href="#查找"></a> 查找</h3>
 <h4 id="解释"><a class="markdownIt-Anchor" href="#解释"></a> 解释</h4>

+ 31 - 0
baidusitemap.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
+  <url>
+    <loc>https://schtonn.github.io/2020/03/04/computer/</loc>
+    <lastmod>2020-03-15</lastmod>
+  </url>  <url>
+    <loc>https://schtonn.github.io/2020/03/01/plan/</loc>
+    <lastmod>2020-03-15</lastmod>
+  </url>  <url>
+    <loc>https://schtonn.github.io/2020/03/02/segment-tree/</loc>
+    <lastmod>2020-03-06</lastmod>
+  </url>  <url>
+    <loc>https://schtonn.github.io/2020/03/01/min-span-tree/</loc>
+    <lastmod>2020-03-05</lastmod>
+  </url>  <url>
+    <loc>https://schtonn.github.io/2020/03/01/test/</loc>
+    <lastmod>2020-03-05</lastmod>
+  </url>  <url>
+    <loc>https://schtonn.github.io/2020/03/02/dinic/</loc>
+    <lastmod>2020-03-03</lastmod>
+  </url>  <url>
+    <loc>https://schtonn.github.io/2020/03/02/ferbonacci/</loc>
+    <lastmod>2020-03-03</lastmod>
+  </url>  <url>
+    <loc>https://schtonn.github.io/2020/03/01/tree-link/</loc>
+    <lastmod>2020-03-03</lastmod>
+  </url>  <url>
+    <loc>https://schtonn.github.io/2020/03/01/union-find/</loc>
+    <lastmod>2020-03-03</lastmod>
+  </url>
+</urlset>

+ 9 - 1
css/main.css

@@ -1258,7 +1258,7 @@ pre .javascript .function {
 }
 .links-of-author a::before,
 .links-of-author span.exturl::before {
-  background: #e0e396;
+  background: #c19346;
   border-radius: 50%;
   content: ' ';
   display: inline-block;
@@ -2229,6 +2229,14 @@ ul.breadcrumb li + li:last-child {
 .tag-cloud a:hover {
   color: #222 !important;
 }
+.gt-header a,
+.gt-comments a,
+.gt-popup a {
+  border-bottom: none;
+}
+.gt-container .gt-popup .gt-action.is--active::before {
+  top: 0.7em;
+}
 @media (max-width: 767px) {
   .header-inner,
   .main-inner,

+ 13 - 0
robots.txt

@@ -0,0 +1,13 @@
+# hexo robots.txt
+User-agent: *
+Allow: /
+Allow: /archives/
+
+Disallow: /vendors/
+Disallow: /js/
+Disallow: /css/
+Disallow: /fonts/
+Disallow: /vendors/
+Disallow: /fancybox/
+
+Sitemap: http://schtonn.github.io/baidusitemap.xml