自动向 Crates.io 发布新版本

缘起 之前写 Java 时,自己所在的组遵循这样的 workflow: 每当 master branch 有新 commit 时,会使用 Maven Release Plugin 修改 pom.xml 内的版本号 Bot 会将新版本的 Maven Package 上传到 JFrog 内。 最近,… ...more

August 19, 2021
线段树作者是谁

省流助手:Jon Louis Bentley, 于 1977 年发明. 线段树是 OI 中常用的基础算法。出于好奇,我简单考证了线段树的诞生过程。个人能力所限,疏漏在所难免,恳请朋友们不吝赐教。 在 1977 年,Victor L. Klee, Jr 发表了 Can the Measure of U… ...more

August 07, 2021
Codeforces #723 1526E Oolimry and Suffix Array 题解

题目描述 给定一个后缀数组 Suffix Array 和词典大小(alphabet size),求总共有多少种不同的可能性。题目链接 1526 E 这道题的描述很简单,但思维量很大。官方 Solution 又写的非常简洁。忙了一个星期,我总算完成了这道题。 这道题可以拆分成两问 1. 给定后缀数组,… ...more

July 15, 2021
初探 Z function 处理字符串

之前参加了 Codeforces Round #726,E2 这道题方法很多,推荐的方法是 Z Function. 我也借机学习一个新算法。 函数定义 本文中,所有的数组下标均为 0 开始。如无说明,所有的区间均为闭区间。对于字符串 S, S[a, b] 表示选取一个长度为 b - a + 1,范围… ...more

June 20, 2021
Tail Sum Formula 的学习笔记

最近看书时,接触到了 Tail-Sum Formula. 公式的定义如下 $$E(X) = \sum_{x=1}^{\infty} P(X \geq x) $$ 它也有一个等价形式 $$E(X) = \sum_{x=0}^{\infty} P(X \gt x) $$ 公式证明 在 Sinho C… ...more

June 14, 2021
Fcitx 5 在分辨率改变后候选框过大

我当前使用的是 Fedore34+Gnome 40+Fcitx 5.0.8。今天早上为了用 Wine 玩星际争霸,把屏幕分辨率设置到 800x600,并将 Display Mode 设置为 Mirror。游戏结束后,我将分辨率改回了 1920x1080,但 Fcitx 的候选框就变得特别大,如该视频… ...more

May 30, 2021
从 Python Bytecode 的角度看 List Comprehension 生成 Tuple

Python List Comprehension 使用非常广泛。通常认为,在生成的 sequence 定长的情况下,应该生成 Tuple 而非 List。出于好奇,我简单研究一下这两者在 Bytecode 的区别。 示例代码如下,很简单的 List Comprehension。 def trans… ...more

March 28, 2021