树状数组
呆呆与笨笨
梦想是被追逐的,而不是幻想的
展开
-
树状数组
树状数组 树状数组(Binary Indexed Tree(BIT), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构。主要用于查询任意两位之间的所有元素之和,但是每次只能修改一个元素的值;经过简单修改可以在log(n)的复杂度下进行范围修改,但是这时只能查询其中一个元素的值。 基本概念: 假设数组a[1..n],那么查询a[1]+...+a[n]的时间是转载 2014-05-11 21:38:53 · 529 阅读 · 0 评论 -
POJ 2299 Ultra-QuickSort(树状数组+离散化)
树状数组 离散化的方式: struct Node { int val; int pos; }; Node node[500005]; int reflect[500005]; val存放原数组的元素,pos存放原始位置,即node[i].pos = i。 把这些结构体按照val的大小排序。 reflect数组存放离散化后的值,即reflect[node[i].pos] = i原创 2014-05-11 21:26:42 · 435 阅读 · 0 评论