
树状数组
文章平均质量分 52
1
hesorchen
这个作者很懒,什么都没留下…
展开
-
gym344448C线段树/树状数组 离线查询区间小于等于k的数的数量
题目 原地击剑 求解 其实就是求 ∑i=1n∑j=i+1nai+i>=j&&aj−j<=i\sum_{i=1}^{n}\sum_{j=i+1}^{n} a_i+i>=j{\&\&} a_j-j<=i∑i=1n∑j=i+1nai+i>=j&&aj−j<=i 两个条件可以写成:j<=ai+i&&aj−j<=ij<=a_i+i\&\&a_j-j<=ij<=ai原创 2021-09-20 20:12:37 · 580 阅读 · 2 评论 -
CF1430E贪心、树状数组
题目 E. String Reversal 给出一个小写字母字符串aaa,现有一个aaa的翻转字符串bbb,每次可以交换aaa中两个相邻的字母,问至少交换多少次可以得到字符串bbb。 求解 设字符串aaa为aabbc,则字符串bbb为cbbaa 贪心考虑,枚举字符串bbb中的字符,每次优先选择字符串aaa中最近的相同字符交换过来。 接下来需要维护最近的相同字符的贡献。 首先用26个双端队列,保存26的字母出现的每个位置。对于bbb串的第一个字符ccc,在aaa串中的位置为5,要将字符ccc交换至第一个位置,原创 2021-08-17 10:26:26 · 190 阅读 · 0 评论 -
HDU1541树状数组
题目 Stars 二维平面中给出若干点,一个点的贡献是在他最下方的点的数量, 即 F(i)=∑j=1n(xi≥xj&&yi≥yj)F(i)=\sum_{j=1}^{n}(x_i\geq x_j {\&\&} y_i\geq y_j) F(i)=j=1∑n(xi≥xj&&yi≥yj) 对于i=[0,n−1]i=[0,n-1]i=[0,n−1]求F(i)F(i)F(i)。 看了好几遍也没看见多组输入… … 解题思路 对x、y其中一维排序,然后维护另一维顺原创 2021-08-06 17:33:27 · 167 阅读 · 0 评论 -
树状数组(单点修改和区间查询问题)
今天刚学了树状数组,理解还不是很透彻,写点东西加深理解、记忆 树状数组的结构(C数组表示树状数组,A数组表示普通的数组) 先给出几个概念和性质 lowbit:顾名思义,将一个十进制数转换为二进制,最低位1所对应的值就是该数的lowbit值。lowbit(a)=(a&(-a))例如5转换为二进制数为101,最低位1对应的值为1,那么lowbit(5)就是1。其实如果这个二进制数末尾...原创 2020-02-14 15:09:42 · 5176 阅读 · 1 评论