杂项 - 双指针
双指针
双指针是在暴力解法可行的情况下进行优化,达到降低时间复杂度的结果。通常来说,它能将一个嵌套循环(平方复杂度)优化为一层循环(线性复杂度)。
一般地,双指针算法的模板与下面给出代码类似:
1234for (int i = 0, j = 0; i < n; i++) { while (cond(i, j, m)) j++; foo();}
下文均为例题。
...
杂项 - 前缀和 差分
前缀和用来求一个区间内的和,差分用来对一个区间加减常数的操作减少复杂度,利用了高中数学中学过的数列前N项和的性质。
杂项 - 高精度
高精度的实现模板,包括存储、运算、以及关于边界处理的分析。
搜索 - 二分和三分
二分模板
寻找左边界用第一个,寻找右边界用第二个。
1234567891011121314151617int binary1(int l, int r) { while (l < r) { int mid = l+r>>1; if (check(mid)) l = mid+1; else r = mid; ...
为 Hexo 页脚添加实时更新的运行时间
配置文件
本文用 Dayjs 来处理日期。当然,完全可以用原生 Date,但我不想把时间浪费在处理日期上面。
我使用的是 butterfly 主题。如果读者正在使用别的主题,请查阅对应官方文档寻找如何插入自定义标签与自定义页脚信息。
在主题配置文件(即_config.butterfly.yml)中引入:
12345inject: bottom: - <script src=" ...
自建图床并支持 PicGo 上传
简介
由于 Hexo 的图片管理系统让人比较一言难尽,所以要使用图床来统一管理图片。一般使用 sm.ms 或者 github 仓库作为图床比较多。本着多折腾的心态,再加上我的图不是很多,所以就尝试自己搭建,本文记录一下搭建过程。
补充:现在因为没有服务器的需求,已经改成静态资源了。
部署后端
我们需要自己配置一个后端接口,支持上传图片,我这里用 gist 分享出来了我写的一个简单的后端程序,将几个 ...
微积分 - 推导旋转体相关公式
弧微分
这里简要给出过程,虽然不是特别严谨,但理解起来容易就好。
对于上图可以得出:
ΔsΔx=∣AB⏠∣Δx=∣AB⏠∣2∣AB∣2⋅∣AB∣2(Δx)2=∣AB⏠∣2∣AB∣2⋅(Δx)2+(Δy)2(Δx)2=∣AB⏠∣2∣AB∣2⋅[1+(ΔyΔx)2]\begin{aligned}
\frac{\Delta s}{\Delta x} &= \frac{|\overgroup{A ...
基于 inspect 实现重载
通常情况下 Python 只能做到在函数体内部判断参数类型进行重载,但我们可以借助 inspect 来实现像一般静态语言那样的重载。为了简化代码,不考虑 positional only 和 keyword only 的参数。
以元类实现单例
借助元类可以控制类在实例化时的行为,进而达到单例的目的。在 Python 中类本身就是 type 的对象,而元类就是继承了 type 的类,仅此而已。
在 GitHub Pages 中使用 Vue Router
本文主要是由于这个倒计时项目以路径参数的形式接收自定义日期,出于美观的原因我不想用 hash router,而是使用 history router 。如果用 hash router 就不会有这个问题了。此文终结
GitHub Pages 只能帮你生成一个静态网站,但它支持用 404.html 作为一个 fallback(原谅我不知道怎么用中文描述比较贴切)利用这个机制,和 sessionStora ...