Wilson's blog
2023-08-02T09:24:25.754Z
https://wilsonxia.cn/
Wilson Xia
Hexo
一些经典的系统idea
https://wilsonxia.cn/%E4%B8%80%E4%BA%9B%E7%BB%8F%E5%85%B8%E7%9A%84%E7%B3%BB%E7%BB%9Fidea/
2023-08-02T07:32:37.000Z
2023-08-02T09:24:25.754Z
<p>类似于 CS61C 提出的体系结构经典 idea<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>我也想在这里总结一下我在学习/读论文过程中看到的可复用的
6.824 Lab2B Raft
https://wilsonxia.cn/6-824-Lab2B-Raft/
2022-12-18T00:38:59.000Z
2022-12-18T03:18:39.025Z
<p>2022.12.18 完成了 Lab2B<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>内容是实现 Raft 的共识算法<span
复读大三
https://wilsonxia.cn/%E5%A4%8D%E8%AF%BB%E5%A4%A7%E4%B8%89/
2022-09-12T15:41:44.000Z
2022-12-18T03:17:40.507Z
<p>开学的时候<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>我感到很想完成几门早有耳闻的北美CS课程的实验<span
6.824 Lab1 MapReduce
https://wilsonxia.cn/6-824-Lab1-MapReduce/
2022-03-19T16:01:19.000Z
2022-03-19T16:37:58.690Z
<p>前前后后做了15个小时<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>看到<code>PASSED ALL 30 TESTING
CF Edu123 题解
https://wilsonxia.cn/CF-Edu123-%E9%A2%98%E8%A7%A3/
2022-03-07T13:47:25.000Z
2022-03-22T13:23:01.342Z
<h2 id="f-basis">F. Basis</h2>
<p><a href="https://codeforces.com/contest/1644/problem/F">题面</a></p>
<p>考虑一群在操作 2 下可以互相变换的数组<span
Trie树维护集合相交性
https://wilsonxia.cn/Trie%E6%A0%91%E7%BB%B4%E6%8A%A4%E9%9B%86%E5%90%88%E7%9B%B8%E4%BA%A4%E6%80%A7/
2022-03-03T09:40:59.181Z
2022-03-07T15:03:14.266Z
<p>这篇文章讲一个 trick<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>他可以解决如下问题<span class="bd-box"><h-char
ARC136题解
https://wilsonxia.cn/ARC136%E9%A2%98%E8%A7%A3/
2022-03-01T13:17:35.000Z
2022-03-06T17:20:13.857Z
<p>这场 ARC 比较考验观察能力<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>就是找到切入点的能力<span class="bd-box"><h-char
ARC135题解
https://wilsonxia.cn/ARC135%E9%A2%98%E8%A7%A3/
2022-02-14T14:27:52.000Z
2022-02-15T04:32:24.288Z
<p>F暂时有个地方没搞明白<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>但我会研究题解和正确代码<span class="bd-box"><h-char
在Linux上使用clash
https://wilsonxia.cn/%E5%9C%A8Linux%E4%B8%8A%E4%BD%BF%E7%94%A8clash/
2022-01-21T03:31:11.000Z
2022-02-06T18:04:12.952Z
<p>更新<span class="bd-box"><h-char class="bd bd-beg"><h-inner>:</h-inner></h-char></span>我火星了<span class="bd-box"><h-char class="bd
页面调度算法
https://wilsonxia.cn/%E9%A1%B5%E9%9D%A2%E8%B0%83%E5%BA%A6%E7%AE%97%E6%B3%95/
2022-01-07T04:31:38.000Z
2022-02-06T18:04:25.596Z
<h2 id="最优调度算法为什么最优">最优调度算法为什么最优</h2>
<p>我们发现换页时换入的页总是固定的<span class="bd-box"><h-char class="bd
二分图匹配
https://wilsonxia.cn/%E4%BA%8C%E5%88%86%E5%9B%BE%E5%8C%B9%E9%85%8D/
2021-10-30T15:37:16.000Z
2022-01-02T02:15:35.175Z
<p>思路<span class="bd-box"><h-char class="bd bd-beg"><h-inner>:</h-inner></h-char></span>先通过交错路和增广路的概念建立起处理最大匹配的工具<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>证明匹配最大的充要条件是图中没有增广路<span class="bd-box"><h-char class="bd bd-beg"><h-inner>。</h-inner></h-char></span>然后证明Hall定理<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>顺便证明了婚配定理<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>并利用之证明最大匹配与最小点覆盖的对偶性<span class="bd-box"><h-char class="bd bd-beg"><h-inner>。</h-inner></h-char></span>最后证明最小边覆盖与最大独立集的对偶性<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>以及这四者之间的关系<span class="bd-box"><h-char class="bd bd-beg"><h-inner>。</h-inner></h-char></span></p>
Public Transport System
https://wilsonxia.cn/Public-Transport-System/
2021-10-14T09:36:16.000Z
2021-10-15T03:50:30.820Z
<h2 id="题意">题意</h2>
<p>给定一个有向图<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>每条边有边权<span class="markdown-them-math-inline">$a_e$</span>和<span class="markdown-them-math-inline">$b_e$</span><span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span><span class="markdown-them-math-inline">$0<a_e,b_e;\;b_e<a_e$</span><span class="bd-box"><h-char class="bd bd-beg"><h-inner>。</h-inner></h-char></span>记一条路径由<span class="markdown-them-math-inline">$k$</span>条边<span class="markdown-them-math-inline">$e_1,e_2,...,e_k$</span>组成<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>那么这条路径中<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>边<span class="markdown-them-math-inline">$e_1$</span>的权值为<span class="markdown-them-math-inline">$a_{e_1}$</span><span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span><span class="markdown-them-math-inline">$e_i(i>1)$</span>的权值为<span class="bd-box"><h-char class="bd bd-beg"><h-inner>:</h-inner></h-char></span></p>
<div class="markdown-them-math-block">$$\begin{cases}
a_{e_i}&a_{e_i}\leq a_{e_{i-1}},\\
a_{e_{i}}-b_{e_i}&a_{e_i}>a_{e_{i-1}}.
\end{cases}
$$</div><p>这条路径的权值是这条路径上边的权值之和<span class="bd-box"><h-char class="bd bd-beg"><h-inner>。</h-inner></h-char></span>求从点<span class="markdown-them-math-inline">$1$</span>出发到所有点的最短路长度<span class="bd-box"><h-char class="bd bd-beg"><h-inner>。</h-inner></h-char></span></p>
<div class="markdown-them-math-block">$$\begin{align*}
n\leq 1\times10^5,\ m\leq 2\times10^5.
\end{align*}
$$</div>
Charged Tree
https://wilsonxia.cn/Charged-Tree/
2021-09-21T08:17:39.076Z
2021-10-07T12:40:38.384Z
<p>题意<span class="bd-box"><h-char class="bd bd-beg"><h-inner>:</h-inner></h-char></span>给定一棵有根带权树<span class="bd-box"><h-char class="bd bd-beg"><h-inner>。</h-inner></h-char></span>有两种操作下移和上移<span class="bd-box"><h-char class="bd bd-beg"><h-inner>。</h-inner></h-char></span>下移<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>即每个节点将自己的权值均分给各个儿子<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>假设叶子结点有一个无限长的儿子链<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>即叶子结点每次下移都会把自己和整条儿子链下移一位<span class="bd-box"><h-char class="bd bd-beg"><h-inner>。</h-inner></h-char></span>每个节点的新值就是它从父亲得到的那个值<span class="bd-box"><h-char class="bd bd-end"><h-inner>(</h-inner></h-char></span>他自己原来的值已经分给了儿子<span class="bd-box"><h-char class="bd bd-beg"><h-inner>)</h-inner></h-char><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>特别地<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>一次下移操作后根变成0<span class="bd-box"><h-char class="bd bd-beg"><h-inner>。</h-inner></h-char></span>上移<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>即对每个节点<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>将所有儿子的权值加起来赋给自己<span class="bd-box"><h-char class="bd bd-beg"><h-inner>。</h-inner></h-char></span></p>
tarjan算法(求最近公共祖先)
https://wilsonxia.cn/tarjan%E7%AE%97%E6%B3%95%EF%BC%88%E6%B1%82%E6%9C%80%E8%BF%91%E5%85%AC%E5%85%B1%E7%A5%96%E5%85%88%EF%BC%89/
2021-09-18T09:33:11.008Z
2021-11-28T16:31:24.172Z
<p>本文讲解用于求解最近公共祖先<span class="bd-box"><h-char class="bd bd-end"><h-inner>(</h-inner></h-char></span>Least Common Ancestor, LCA<span
PWTC day4补题记录
https://wilsonxia.cn/PWTC%20day4%E8%A1%A5%E9%A2%98%E8%AE%B0%E5%BD%95/
2021-08-20T13:51:24.687Z
2021-10-07T12:40:13.290Z
<h2 id="f">F</h2>
<p>题意<span class="bd-box"><h-char class="bd bd-beg"><h-inner>:</h-inner></h-char></span>求树链mex<span
FFT
https://wilsonxia.cn/FFT/
2021-07-18T03:51:49.629Z
2022-03-22T11:54:43.024Z
<p>FFT可以在<span class="markdown-them-math-inline">$O(n\log n)$</span>的时间内在多项式的点值表示法和系数表示法之间相互转换<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>从而可以加速多项式乘法<span class="bd-box"><h-char class="bd bd-beg"><h-inner>。</h-inner></h-char></span></p>
SB树
https://wilsonxia.cn/SB%E6%A0%91/
2021-06-10T19:11:22.884Z
2021-10-07T12:40:08.427Z
<p>这棵二叉树中包含了所有的非负有理数<span class="bd-box"><h-char class="bd bd-beg"><h-inner>。</h-inner></h-char></span>首先看它的构造<span class="bd-box"><h-char
CF708D2
https://wilsonxia.cn/CF708D2/
2021-04-29T03:03:50.328Z
2021-10-07T12:40:43.202Z
<h2 id="d题">D题</h2>
<p>题很好<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>感觉思维得到了升华<span
区间众数
https://wilsonxia.cn/%E5%8C%BA%E9%97%B4%E4%BC%97%E6%95%B0/
2021-04-20T05:20:43.094Z
2021-10-07T12:41:05.609Z
<p>通用求众数离线做法<span class="bd-box"><h-char class="bd bd-beg"><h-inner>:</h-inner></h-char></span>离散化之后<span class="bd-box"><h-char class="bd
筛选法建堆
https://wilsonxia.cn/%E7%AD%9B%E9%80%89%E6%B3%95%E5%BB%BA%E5%A0%86/
2021-02-05T04:07:28.000Z
2021-10-17T15:39:10.261Z
<p>这可能是本学期学习数据结构与算法课的最大收获<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>就是知道了还有线性建堆的方法<span class="bd-box"><h-char class="bd bd-beg"><h-inner>。</h-inner></h-char></span>线性建堆可能也是有应用场景的<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>比如用<span class="markdown-them-math-inline">$O(n)$</span>的空间及时间复杂度<span class="bd-box"><h-char class="bd bd-beg"><h-inner>,</h-inner></h-char></span>取出前<span class="markdown-them-math-inline">$n/\log n$</span>大的所有数<span class="bd-box"><h-char class="bd bd-beg"><h-inner>。</h-inner></h-char><h-char class="bd bd-end"><h-inner>(</h-inner></h-char><h-char class="bd bd-beg"><h-inner>?</h-inner></h-char></span></p>