摘要: 莫比乌斯反演 = 莫比乌斯反演是数论数学中很重要的内容,可以用于解决很多组合数学的问题。莫比乌斯反演在大部分情况下都能简化运算。 导入 我们考虑一个函数$f(x)=\sum_{d|x}g(d)$ 那么显然 $f(1)=g(1)$ $f(2)=g(1)+g(2)$ $f(3)=g(1)+g(3)$ $ 阅读全文
posted @ 2018-03-31 16:32 the_Despair 阅读(177) 评论(0) 推荐(0) 编辑
摘要: min max容斥(包含kth) 用途 对于一个集合S,给出每个元素出现的概率,我们需要求每一个元素都出现至少一次的期望次数,可以使用min max容斥,也可以求任意$k$个元素出现的期望(kth min max容斥)。 例题 "HDU 4336 Card Collector" 这题当然可以状压dp 阅读全文
posted @ 2018-03-30 22:04 the_Despair 阅读(3679) 评论(5) 推荐(2) 编辑
摘要: (global set key (kbd "C a") 'mark whole buffer) ;;全选 (global set key (kbd "C z") 'undo) ;;一键撤销 (global set key (kbd "RET") 'newline and indent) ;;换行时自 阅读全文
posted @ 2018-03-29 19:50 the_Despair 阅读(428) 评论(2) 推荐(0) 编辑
摘要: 线段树总结 = 导引 有时候我们经常需要对一组序列进行操作,修改或者查询一段区间的信息,朴素的算法是暴力修改暴力查询,但如果数据范围到$10^4$以上的话就可能会超时,所以,我们就需要用一些数据结构去维护这个序列,线段树就是其中之一。 思想 对于一个序列,我们用二分的思想,将他分为两个长度相等的区间 阅读全文
posted @ 2018-03-29 19:18 the_Despair 阅读(167) 评论(0) 推荐(0) 编辑
摘要: [SDOI2011]消防 = "题目来源" 题目描述 某个国家有n个城市,这n个城市中任意两个都连通且有唯一一条路径,每条连通两个城市的道路的长度为zi(zi using namespace std; const int N=3e5+20; int a[N],to[N 2],nex[N 2],w[N 阅读全文
posted @ 2018-03-29 13:51 the_Despair 阅读(150) 评论(0) 推荐(0) 编辑
摘要: KMP算法总结 = ps:蒟蒻写的不太好,推荐神犇写的一篇有关KMP的博客,非常清楚,有动图匹配全过程,看一遍就懂, "戳我" 。 本篇博客中的字符串都是从1开始的,后面不再解释 。 用途 KMP算法主要用于快速字符串匹配的,假设我们要在是字符串$s1$中找一个子串$s2$,朴素的字符串匹配是枚举$ 阅读全文
posted @ 2018-03-28 19:55 the_Despair 阅读(197) 评论(0) 推荐(0) 编辑
摘要: [SDOI2011]染色 = 题目描述 输入输出格式 输出格式: 对于每个询问操作,输出一行答案。 解法 ps:这题本来是树剖的,但我用lct写的,以下是lct的写法,树剖会有所不同 我们考虑把连接不同色点的边权值设为1,连接同色的点的边权设为0,这样我们就可以把问题转化为查询这条路径上所有的边权和 阅读全文
posted @ 2018-03-26 21:27 the_Despair 阅读(462) 评论(0) 推荐(0) 编辑
摘要: [ZJOI2008]树的统计= 题目描述 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。 我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM 阅读全文
posted @ 2018-03-26 20:28 the_Despair 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 树链剖分总结 基本思想 对于有些题目,我们往往需要对一些树链进行修改或者查询,而我们不可能每次都暴力修改暴力枚举,这样做的时间复杂度很高,而很多有修改和查询操作的数据结构例如线段树和树状数组又不能在树上进行,这个时候,我们就引进了一种算法,树链剖分,将一颗树划分为 若干条链 ,再用数据结构去维护。 阅读全文
posted @ 2018-03-24 16:14 the_Despair 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 动态主席树(带修改的区间第k大)(树套树) === 基本思想 区间第k小的问题我们可以用静态主席树来维护,但是一些题目往往会增加修改操作,那么我们应该怎么做呢,先看例题。 给定一个含有n个数的序列a[1],a[2],a[3]……a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[ 阅读全文
posted @ 2018-03-24 16:02 the_Despair 阅读(4065) 评论(0) 推荐(1) 编辑