![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
【算法专题】树状数组、线段树
算法
鱼儿冒个泡
这个作者很懒,什么都没留下…
展开
-
【树状数组】hdu Color the ball
N个气球排成一排,从左到右依次编号为1,2,3…N.每次给定2个整数a b(a <= b),从气球a开始到气球b依次给每个气球涂一次颜色。算出每个气球被涂过几次颜色。 分析:区间修改,区间查询 (差分,树状数组) #include<iostream> using namespace std; #define ll long long ll c[100005]; int N; int lowbit(int n) { return n & (-n); } void upda原创 2021-03-24 11:05:56 · 242 阅读 · 0 评论 -
【树状数组】hdu 交换次数(1)
给定n(n<=100000)个正整数,希望对其从小到大排序,如果采用冒泡排序算法,请计算需要进行的交换次数 分析:单点更新,更新过程中求区域和 注意数据范围,开long long #include<iostream> using namespace std; #define ll long long ll c[100005]; int N; int lowbit(int n) { return n & (-n); } void update(ll c[], int i,原创 2021-03-24 10:48:03 · 402 阅读 · 0 评论 -
【树状数组】hdu 敌兵布阵
敌人N个军营,每个军营人数经常变动,快速统计连续几个军营多少士兵 分析:单点修改,区间查询 #include<iostream> using namespace std; int c[50005]; int N; int lowbit(int n) { return n & (-n); } void update(int c[], int i, int val) { while (i <= N) { c[i] += val; i += lowbit(i);原创 2021-03-24 10:29:23 · 95 阅读 · 0 评论