
树状数组
notmuch
这个作者很懒,什么都没留下…
展开
-
树状数组求逆序对
求逆序对的思路总结如下:对数据进行离散化处理,设离散化后的数组为a[n].设置数组s[n], s[i]表示数字i在a[n]出现的次数.核心步骤:ans = 0;s[1~n] = 0; //初始化s[n]for i = 1, 2, …, n // 从1遍历到ns[a[i]] += 1; //更新a[i]出现的次数cnt = SUM(s[1~a[i]]); //cnt表示当我们遍历到第i个数时,共有多少个数<=a[i]ans += i - cnt; //当前共有i个数, <原创 2020-11-12 20:22:17 · 234 阅读 · 0 评论 -
HDU1166,敌兵布阵(树状数组)
树状数组的模板题。树状数组是一个查询和更新复杂度都为log(n)的数据结构。主要用于数组的单点修改&&区间求和。关于树状数组的详解,可看下面的博客:https://blog.youkuaiyun.com/bestsort/article/details/80796531#区间修改-单点查询核心是在lowbit函数上。此题为树状数组的单点更新与区间求和问题。代码如下:#includ...原创 2019-05-23 16:25:08 · 109 阅读 · 0 评论