树状数组
zzti_xiaowei
xxx
展开
-
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 · 144 阅读 · 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 · 190 阅读 · 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 · 179 阅读 · 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 · 150 阅读 · 0 评论 -
彻底弄懂二维树状数组
当要频繁的对数组元素进行修改,同时又要频繁的查询数组内任一区间元素之和的时候,可以考虑使用树状数组. 通常对一维数组最直接的算法可以在O(1)时间内完成一次修改,但是需要O(n)时间来进行一次查询.而树状数组的修改和查询均可在O(log(n))的时间内完成. 一、回顾一维树状数组 假设一维数组为Ai,则与它对应的树状数组Ci是这样定义的: C1 = A1 C2 = A1 + A2...转载 2018-07-15 14:57:28 · 8988 阅读 · 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 · 280 阅读 · 0 评论