随笔分类 -  奇技淫巧

摘要:树Hash学习笔记 树Hash是用来判断两棵树是否同构(即去掉编号后形态一样的方法) 子树无顺序的树同构 子树排列顺序不同,算一种树。 对于有根树,我们从根开始DFS,对每个子树维护哈希值hx对于同构的树,他们根节点的h一定相同。 一个比较好的递推方法是: \(h_x=1+\sum_{y 阅读全文
posted @ 2021-01-14 16:58 birchtree 阅读(189) 评论(0) 推荐(0) 编辑
摘要:[BZOJ 3117] [NOI1999]内存分配(STL) 题面 内存是计算机重要的资源之一,程序运行的过程中必须对内存进行分配。 经典的内存分配过程是这样进行的: 1.内存以内存单元为基本单位,每个内存单元用一个固定的整数作为标识,称为地址。地址从0开始连续排列,地址相邻的内存单元被认为是逻辑上 阅读全文
posted @ 2019-12-15 11:28 birchtree 阅读(225) 评论(0) 推荐(0) 编辑
摘要:浅谈高维前缀和 引入 在用一般方法计算二维前缀和的时候,我们可以写出如下代码 同理可以写出三维前缀和 我们发现在求前缀和的时候需要一个容斥,当维数为t的时候容斥的时间复杂度是2t,随着维数变高,复杂度增大的很快 高维前缀和的一般优化 但是,我们可以把高维前缀和的总时间复杂度从$O(n^t2 阅读全文
posted @ 2019-11-12 17:30 birchtree 阅读(1162) 评论(2) 推荐(4) 编辑
摘要:[BZOJ 2989]数列(二进制分组+主席树) 题面 给定一个长度为n的正整数数列a[i]。 定义2个位置的graze值为两者位置差与数值差的和,即graze(x,y)=|x y|+|a[x] a[y]|。 2种操作(k都是正整数): 1.Modify x k:将第x个数的值修改为k。 2.Que 阅读全文
posted @ 2019-08-20 13:12 birchtree 阅读(274) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示