码迷,mamicode.com
首页 >  
搜索关键字:树状数组    ( 3763个结果
TreeArray
树状数组是对一个数组改变某个元素和求和比较实用的数据结构。设a[1...N]为原数组,定义c[1...N]为对应的树状数组:c[i]=a[i-2^k+1]+a[i-2^k+2]+...+a[i]其中k为i的二进制表示末尾0的个数,所以2^k即为i的二进制表示的最后一个1的权值.也就是说,把k表示成二...
分类:其他好文   时间:2014-09-02 10:14:14    阅读次数:574
hdu - 4911 - Inversion(离散化+树状数组)
题意:一个由n个非负整数组成的序列,问进行最多k次相邻交换后最少的逆序对数 (1 ≤ n ≤ 10^5, 0 ≤ k ≤ 10^9, 0 ≤ ai ≤ 10^9)。。 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4911 ——>>每次只能交换相邻的两个数,每次交换,只改变这两个数的逆序,其他的数对于这两个数的逆序没有改变,所以,求出所有的逆序对...
分类:其他好文   时间:2014-09-01 21:15:35    阅读次数:191
HDU 1556 Color the ball
题解:基础的树状数组区间修改,单点查询。#include #include int c[100005],a,b,n;int modify(int x,int num){while(x0)s+=c[x],x-=x&-x;return s;} //特别注意s初始化为0。 int main(){ w...
分类:其他好文   时间:2014-09-01 19:30:33    阅读次数:184
CF 383C Propagating tree [想法+树状数组]
题意: 给一棵树 给出两种操作: 1.在某个结点上加上一个值,在这个结点所有的儿子结点上减去这个值,在这个结点的所有孙子结点上加上这个值,在所有曾孙子结点上减去这个值,直到底。 2.查询某个结点上的值 分析: 把这个问题转化为树状数组的区间求和 样例经过dfs处理后如下,每个结点处理出了两个值l,r,层数1,2,3...,层数为奇数的属性为0,层数为偶数的属性为1 可以看到...
分类:其他好文   时间:2014-09-01 14:09:03    阅读次数:213
Codeforces 101B Buses 排序+树状数组
题目链接:点击打开链接 当转移[l,r] 区间时, 若[0, r-1] 这里的区间都已经转移完毕时是最优的,所以按右端点升序,同理右端点相同时左端点升序,然后树状数组维护一下前缀和。 #include #include #include #include #include using namespace std; #define N 100005 #define mod 100000...
分类:其他好文   时间:2014-08-31 18:43:51    阅读次数:340
Codeforces 383C . Propagating tree【树状数组,dfs】
题目大意: 有一棵树,对这个树有两种操作:1:表示为(1 x val),在编号为x的节点上加上val,然后给x节点的每个儿子加上- val,再给每个儿子的儿子加上-(- val),一直加到没有儿子为止。2:表示为(2 x)查询x节点上的值。 做法: 由于每次修改操作修改的并不是一个值,而是很多值,那我们将该题抽象成区间修改,点查询的问题。那怎么抽象呢?可以明白的是,每次操作虽然有加有减,但是...
分类:其他好文   时间:2014-08-31 09:16:01    阅读次数:235
Codeforces 461C. Appleman and a Sheet of Paper
每次只把短的部分往长的部分折叠,直接用树状数组爆搞就可以了。 每次长度都缩小一些暴力的复杂度不是太高,启发式暴力???? C. Appleman and a Sheet of Paper time limit per test 2 seconds memory limit per test 256 megabytes input standa...
分类:移动开发   时间:2014-08-30 15:11:21    阅读次数:275
Codeforces Round #263 (Div. 1) A B C
Codeforces Round #263 (Div. 1) A:贪心,排个序,然后从后往前扫一遍,计算后缀和,之后在从左往右扫一遍计算答案 B:树形DP,0表示没有1,1表示有1,0遇到0必然合并,0遇到1也必然合并,1遇到0必然合并,1遇到1,必然切断,按照这样去转移即可 C:树状数组,再利用启发式合并,开一个l,r记录当前被子左右下标,和一个flip表示是否翻转 代码...
分类:其他好文   时间:2014-08-30 12:38:09    阅读次数:281
HDU 1166 敌兵布阵 (树状数组入门)
树状数组的引入: 对于查询和修改要求差不多,使用树状数组可以达到logN的复杂度 红色矩形表示的数组C就是树状数组.这里,C[i]表示A[i-2^k+1]到A[i]的和,而k则是i在二进制时末尾0的个数,或者说是i用2的幂方和表示时的最小指数。 所谓的k,也是该节点在树中的高度. 修改第i个元素,为了维护数组C的意义,需要修改C[i]以及C[i]的全部祖先,而非C[i]的祖先的节点则对...
分类:其他好文   时间:2014-08-30 11:15:39    阅读次数:224
POJ 3378——Crazy Thairs(树状数组+dp+高精度)数据结构优化的DP
Crazy Thairs Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 6598   Accepted: 1636 Description These days, Sempr is crazed on one problem named Crazy Thair...
分类:其他好文   时间:2014-08-29 18:25:32    阅读次数:201
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!