01 背包的二进制优化

也是在刷题的时候发现的,比如 hiho week 195。一眼看过去就是一个 0-1 背包问题,然后直接 DP 上了,当时觉得应该问题不大,结果最后只有 50%,一看数据,100% 的数据为 1E5 量,简单的 DP 的话复杂度为 O(MN),这样复杂度估计是 1E10,这样肯定会 TLE。 然后一看,他的单个商品的全权值很低,都在 [1, 10]…

Redis 相关的复习

这段时间主要是扑在算法上了,这些工程领域的知识有点遗忘了。所以趁着这次复习,复习下之前做过得项目。同时,正好当时,Redis 官方还没有集群方案,所以才有了之前的 Cache 集群方案,现在正好也看看 Redis 官方的方案。 Codis 方案 一张 Codis 官方给出的架构图: 可以看到,它是采用了 proxy 的方式,和 Redis 官方给出的去中心化的思路不同,Proxy 是一种中心话的思路,将 Redis 仅仅作为存储引擎来使用。这一点其实比较符合组件化的原则,每一个组件只需要做一件事。同时,proxy 的方案,也非常利于简化代码的逻辑。…

Emlog 迁移至 WordPress

作为一个 Emlog 4 年多的用户同时也是众多参与 Emlog 开发者中的一员,做出这个决定确实很难。不过 Emlog 的长期荒废,加上论坛里高质量的内容越来越少。这个也是势在必行。 最后一根稻草是:混乱的社区。于是乎,最后转向了 WordPress。 说道迁移,最麻烦的时数据的备份,之前也想过迁移,但是总是在最后一步卡住了,因为缺少一个合适的工具进行数据的导入导出。自己写的话,比较麻烦,因为对应的数据库表众多(其实就是懒)。 于是乎,这次我觉定自己玩一下。先是查到了这么一篇文章:emlog 5.3.1程序转入wordpress程序教程。得到了这么一个优秀的脚本 em2wp.php。 但是跑了一下,发现问题挺大的。因为这个版本的 php 是用 5 来写的,现在所有的云主机,基本都是 7…

二分查找和 Lucas 定理

因为这段时间都在打比赛中度过,有几个小的收获点这边可以留个纪念。 1. 二分查找的几个用法。 一般而言,二分查找都是用在不同数字的数量集中。这样的好处是如何快速的定位。但是,如果是排序的包含相同数字的数组,要求获得某一个数出现的次数时,就得用另一种二分查找的变种了。 假设是 [1, 1, 2, 3, 3] 这样的一个数组,要求获得 1 和 3 的个数时。普通的二分查找只能定位到其中的一个位置。之前我的做法是,向前向后搜索。但是,在极端情况下,比如一整个数组都是 1,此时,算法的复杂度退化为 O(N),然后就 TLE 了。 所以这边也正好是看到【剑指…