2012年4月11日

poj 2299 逆序数 树状数组 归并

摘要: 方法一:树状数组1.树状数组讲解http://www.cnblogs.com/inpeace7/archive/2012/04/11/2441352.html2.离散化 输入a[i] i 1 2 3 4 5 6 7 a[i] 50 60 80 90 20 100 50 p[i] 2 3 4 5 1 6 2把a[i]变为p[i]即为离散化方法:定义结构体,存储a[i]和i,按照a[i]排序,p[node[1].data]=1;int cnt=1;for(i=1;i<n;i++){ if(node[i-1].data=node[i... 阅读全文

posted @ 2012-04-11 19:26 Inpeace7 阅读(293) 评论(0) 推荐(0) 编辑

树状数组的理解

摘要: 菜鸟一个,说的不好还望指点 去年学的树状数组,现在都忘没了,复习一下。 给你一组数据,例如a[1],a[2],a[3],...a[k],..a[n],求任意一段区间和(比如说从a[i]---a[j]的所有数的和),线性求解,时间复杂度O(n),规模较大时,会TLE。怎么办?思路:以空间换时间。提前存储一些数据的和。怎么存储会节省时间? 方法一:构造一个和数组sum,每次输入第i个数据,就计算一下前i个数的和sum[i]。当求取前i个数和时,直接输出sum[i],O(1)时间复杂度,不很好吗。可是。。。如果我想更新一下第j个数据,那么就得连带着更新sum[j],sum[j+1],...su... 阅读全文

posted @ 2012-04-11 10:58 Inpeace7 阅读(473) 评论(0) 推荐(0) 编辑

导航