树状数组
Y390d
这个作者很懒,什么都没留下…
展开
-
ACM-ICPC 2018 徐州赛区网络预赛 H (树状数组)
题目链接:https://nanti.jisuanke.com/t/31460思路:这题最棘手的就是求和元素的系数是递减的;假设有 1 2 3 4 5 ,要求 2到4的结果那么有 1 2 3 4 5 我们要求的就是 2 3 4 ,会发现我们要求的结果就是左边的区间和,然后再减去 2+3+4 ;1 2 3 4 ...原创 2018-09-14 19:19:15 · 156 阅读 · 0 评论 -
树状数组区间修改+单点查询 (只能单点查询)
差分思想:假设有一个数列 a = { 2, 6, 9, 3, 7 }, 那么对应的差分数组b 有 , b = {2, 4, 3, -6, 4 }因为 b1 + b2 + b3 + ... + = a1 + (a2 - a1) + (a3 - a2) + ... + () = 由此通过求差分数组的前i和就能得到 的值;为什么要用差分数组来求 的值? 如果要修改的区间非...原创 2018-11-14 09:12:58 · 178 阅读 · 0 评论 -
树状数组求区间最大值 (单点修改)
以前一直把树状数组当作求前缀的工具,但事实上,树状数组是一种分块的方式,因为分块的方式比较独特,所以在求前缀的过程中非常方便;树状数组的实现原理就不讲了,这里要特别说明的是,lowbit(x) 不仅可以表示区间分块对应存储前缀的位置,同时还能够表示一个区间的长度,这个长度在求区间最大值的时候起到比较重要的左右,也是我之前没想到的部分;文字说明:求区间最大值 和 求区间和有很大的不同,因...原创 2018-11-16 15:43:49 · 4866 阅读 · 5 评论 -
poj 3468 A Simple Problem with Integers 【区间修改+区间查询(树状数组)】
题目连接:http://poj.org/problem?id=3468参考下面博客的公式:(公式关键是 a[i] = d[j] 是差分数组,只要修改d[L] 和 d[R+1] 的值就能通过求d数组的前缀和得到单个a[] 的值,只要把 a数组的前缀和通过包含 d数组的表达式表达出来,就能只修改d数组的两个值得到a的前缀和)https://www.cnblogs.com/lcf-2000...原创 2018-11-17 15:32:57 · 174 阅读 · 0 评论