
树状数组
zzti_xiaowei
自信来源于不断的学习!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Hdu-1556 Color the ball
[题目链接] 思路1:对区间首尾做标记。 如涂区间[a,b],令c[a]=1,c[b+1]=-1,然后对c数组一遍遍历即可。 代码: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ty原创 2018-06-29 17:07:50 · 171 阅读 · 0 评论 -
51nod-1019 逆序数
[题目链接] 很经典的一道题,解法也很多,学会其它解法不断补充ing~ 思路1:归并排序是将数列s[l,r]分成两半s[l,mid]和a[mid+1,r]分别进行归并排序,然后再将这两半合并起来。在合并的过程中(设l<=i<=mid,mid+1<=j<=r),当s[i]<=s[j]时,并不产生逆序数;当s[i原创 2018-06-28 11:37:06 · 224 阅读 · 0 评论 -
Hdu-2353 Stars
[题目链接] 思路:刚看树状数组,以为这题需要二维维护,当看到评论区大佬提醒y坐标可以不要的!就明白啦~ 代码: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int Max_n=1e5+1...原创 2018-07-04 15:53:56 · 210 阅读 · 0 评论 -
poj-3928 Ping pong
[题目链接] 思路:很简单的一道树状数组题,和逆序数对很像。但是他喵Each player has a unique skill rank.这个没看到,一直在考虑相同等级的情况,凉凉~~ 思路emmm….还是不说了,还是先做逆序对这道题,然后看这题,感觉你就会秒懂,相信自己完全ojbk。 代码: #include&lt;iostream&gt; #include&lt;cstdio&g...原创 2018-07-14 16:24:15 · 184 阅读 · 0 评论 -
彻底弄懂二维树状数组
当要频繁的对数组元素进行修改,同时又要频繁的查询数组内任一区间元素之和的时候,可以考虑使用树状数组. 通常对一维数组最直接的算法可以在O(1)时间内完成一次修改,但是需要O(n)时间来进行一次查询.而树状数组的修改和查询均可在O(log(n))的时间内完成. 一、回顾一维树状数组 假设一维数组为Ai,则与它对应的树状数组Ci是这样定义的: C1 = A1 C2 = A1 + A2...转载 2018-07-15 14:57:28 · 9341 阅读 · 1 评论 -
poj-2155 Matrix
[题目链接] 思路:很详细的 二维数组讲解+本题 题解,orz~ 代码: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; const int Max_n=1e3...原创 2018-07-15 15:06:24 · 327 阅读 · 0 评论