摘要: 算法实现: 初始化:用dp实现初始化。a[]为原始数据数组f,[i][j]表示从i向后的2j个数字中的最值。显然f[i][0]=a[i]; 我们将f[i][j]分为两段,一段为a[i]~a[2j-1]的最值即f[i][j-1],一段为a[i+2j-1]~a[i+2j]即f[i+1<<(j-1)][j 阅读全文
posted @ 2016-07-29 22:16 羊毛羊 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 树状数组是一种可以在O(log n)内区间求和或单点修改的数据结构,因其代码简单且不需递归,效率较线段树高。 树状数组的实现: Lowbit:lowbit(k)是指整数k的二进制的右数第一个1以右的部分的大小,如(6)10=(110)2则lowbit(6)=(10)2=(2)10。 lowbit的简 阅读全文
posted @ 2016-07-28 22:22 羊毛羊 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 最近公共祖先: 两个节点的第一个公共父节点; 求最近公共祖先: 倍增法求最近公共祖先: 例题: hdoj 2586 How Far Away题目大意:一个村子里有n个房子,这n个房子用n-1条路连接起来,接下了有m次询问,每次询问两个房子a,b之间的距离是多少。 阅读全文
posted @ 2016-07-26 18:12 羊毛羊 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 测试word上传博客 阅读全文
posted @ 2016-07-26 17:33 羊毛羊 阅读(251) 评论(0) 推荐(1) 编辑