Jebearssica's Blog

Prefix Sum and Adjacent Difference

理论上来讲前缀和以及差分两种思路应该是算法基础, 是那种堪比排序的基础, 按理说应该掌握得很好才对. 但由于没有系统性学习, 导致后面在学习部分变种树结构的时候非常吃力. 前缀和 是一种预处理方法, 能够实现后续相关查询达到 $O(1)$ 的时间, 以下又分几种情况 一维前缀和 这个方法通常解决”数组前 n 项之和”这个问题, 如下 std::vector<int> p...

EdgeProcessor

一个非常通用的扫描线算法流程, 在 Klayout 内部对许多运算中都用到的运算框架. 要注意的是, 由于 Klayout 的项目几乎通过一个人开发, 为了避免代码膨胀减轻维护压力, 所以有大量的代码复用. 然而这是一个双刃剑, 代码维护轻松了, 但是由于一个流程框架涉及众多命令, 因此势必相较于特例化的算法流程而言更加复杂低效. 很难读懂, 一个看似没什么作用的值重置可能都隐含着一类命令...

Keywords: auto

通常而言, auto 能够根据类型推导规则推导出你想要的类型. 然而, 由于推到规则的限制, 部分情况下可能需要引导编译器推导出你想要的类型. prefer auto to explicit type declaration 这是一个建议, 事实上众多自带类型推导的语言同样承担了很多大型项目, 这一点几乎就可以确定显式类型推导并不一定是一个大型项目的必要条件. 一个良好的变量命名即可解决...